Синтаксис просмотра просмотра Razor не распознает «@» в атрибуте HTML
-
09-10-2019 - |
Вопрос
Я мигрирующую проект из MVC 2 до MVC3 и двигателя просмотра Razor.
В MVC 2 у меня будет следующий HTML:
<div id="del_<%= Model.ActivityID.ToString() %>"></div>
При использовании бритвы я попробовал следующее, что делает буквальный текст «del_@model.activesiDID.tostreing ()», когда я хочу del_1.
<div id="del_@Model.ActivityID.ToString()"></div>
Чтобы обойти эту проблему, я использовал:
<div id="@Model.ActivityID.ToString()_del"></div>
Есть здесь, чтобы сделать бритву с этим синтаксисом?
<div id="del_@Model.ActivityID.ToString()"></div>
Решение
Вам придется использовать @()
вокруг вашей конкретной модели модели так:
<div id="del_@(Model.ActivityID.ToString())"></div>
Причина этого - потому что del_@Model.ActivityID
выглядит как адрес электронной почты для анализатора и по умолчанию, парсер пытается игнорировать адреса электронной почты, чтобы вам не нужно что-то глупое john@@doe.com
Поскольку электронные письма достаточно распространены, чтобы было бы раздражать каждый раз. Таким образом, люди, работающие над бритвенным парсером, только что подумали: «Если это выглядит как электронная почта, игнорируйте его». Так вот почему у вас есть этот конкретный вопрос.
Другие советы
<div id="del_@(Model.ActivityID.ToString())"></div>
Если вы не видели трюк: используйте @( )