Razor ViewEngine: Як уникнути символу "@"?


101

Я намагаюся вивести кілька ручок Twitter у ASP.NET MVC3 спільно з API @ @nyny, і мені не вдалося зрозуміти, як насправді уникнути символу "@" у поданні Razor.

Хтось знає, що таке синтаксис для втечі символу "@" у Razor?

Я намагався використовувати, <text></text>і це призводить до помилки JIT.


2
Ви також можете використовувати сутність HTML &#64;.
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.

Найкраще рішення для цієї справи було дано ІМО у цій відповіді на подібне питання. І те, @@і @:не працювало під час використання коду html &#64;ускладнило б справи.

Отже, мій код був <a href="~/path/?query=@('@')@Model.SomePropery">

@Html.Raw('@')@Model.SomePropery працював би також.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.