Razor View Syntax не распознает «@» в атрибуте HTML - PullRequest
6 голосов
/ 07 декабря 2010

Я мигрирую проект из MVC 2 в MVC3 и механизм просмотра бритвы.

В MVC 2 у меня будет следующий html:

<div id="del_<%= Model.ActivityID.ToString() %>"></div>

При использовании бритвы, я попробовал следующее, что делает буквальный текст "del_@Model.ActivityID.ToString ()", когда я хочу del_1.

<div id="del_@Model.ActivityID.ToString()"></div>

Чтобы обойти проблему, я использовал:

<div id="@Model.ActivityID.ToString()_del"></div>

Можно ли заставить бритву работать с этим синтаксисом?

<div id="del_@Model.ActivityID.ToString()"></div>

Ответы [ 2 ]

11 голосов
/ 07 декабря 2010

Вы должны будете использовать @() вокруг значения вашей конкретной модели, например:

<div id="del_@(Model.ActivityID.ToString())"></div>

Причина этого в том, что del_@Model.ActivityID выглядит как адрес электронной почты для анализатора, и по умолчанию анализатор пытается игнорировать адреса электронной почты, поэтому вам не нужно делать что-то глупое, как john@@doe.com, так как электронные письма достаточно распространены что это будет раздражать каждый раз. Так что люди, работающие над анализатором бритвы, просто подумали: «если это похоже на электронное письмо, игнорируйте его». Вот почему у вас именно эта проблема.

2 голосов
/ 07 декабря 2010
<div id="del_@(Model.ActivityID.ToString())"></div>

Если вы не видели трюк: используйте @( )

...