Razor ViewEngine: ฉันจะหนีสัญลักษณ์“ @” ได้อย่างไร?


101

ฉันกำลังพยายามส่งออกตัวจัดการ Twitter บางตัวใน ASP.NET MVC3 ร่วมกับ Twitter @Anywhere API และฉันไม่สามารถหาวิธีหลีกเลี่ยงสัญลักษณ์ "@" ในมุมมองมีดโกนได้

ไม่มีใครรู้ว่าไวยากรณ์สำหรับการหลีกเลี่ยงอักขระ "@" ใน Razor คืออะไร?

ฉันได้ลองใช้<text></text>แล้วและส่งผลให้เกิดข้อผิดพลาด JIT


2
&#64;นอกจากนี้คุณยังสามารถใช้นิติบุคคลของ HTML
rsenna

คำตอบ:


143

คุณต้องใช้ @@ เพื่อหลีกเลี่ยงสัญลักษณ์ @

สิ่งสำคัญอย่างหนึ่งที่ควรสังเกตคือคุณไม่จำเป็นต้องหลีกเลี่ยงสัญลักษณ์ @ เมื่อมีอยู่ในที่อยู่อีเมล มีดโกนควรฉลาดพอที่จะคิดออกด้วยตัวเอง


4
<a href="" title="this @@ จะไม่ทำงาน"> </a> ทั้งข้อผิดพลาดทางไวยากรณ์ใน VS และข้อผิดพลาดของโปรแกรมแยกวิเคราะห์ในรันไทม์
Tien Do

1
@Tien ดูรหัสอักขระ HTML ล่าสุดที่นี่ใช้ได้กับฉัน: stackoverflow.com/a/13584640/84206
AaronLS

25

หากคุณกำลังเพิ่มเมตาแท็กของ Twitter

และชื่อผู้ใช้ Twitter ของคุณคือพูดว่า foobar

ควรมีลักษณะดังนี้

<meta name="twitter:site" content=@("@foobar")>

16

หากคุณต้องการแสดงความคิดเห็น @ สัญลักษณ์ในรหัส css และเพียงแค่ @@ ใช้ไม่ได้ให้ใช้สิ่งนี้:

@("@@font-face"){ ... css ...}

1
นี่เป็นวิธีที่ดีที่สุดเนื่องจากเอนทิตี HTML ไม่มีประโยชน์ใน CSS
ChrisF

2

ฉันมีอีกกรณีที่แปลก: ส่ง'@' + @Model.SomePropertyต่อไปยังลิงค์ href

ทางออกที่ดีที่สุดสำหรับกรณีนี้คือ IMO ในคำตอบสำหรับคำถามที่คล้ายกันนี้ ทั้งสองอย่าง@@และ@:ไม่ทำงานในขณะที่ใช้รหัส html &#64;จะทำให้สิ่งต่างๆซับซ้อน

ดังนั้นรหัสของฉันคือ <a href="~/path/?query=@('@')@Model.SomePropery">

@Html.Raw('@')@Model.SomePropery คงจะได้ผลเช่นกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.