Синтаксис просмотра просмотра Razor не распознает «@» в атрибуте HTML

StackOverflow https://stackoverflow.com/questions/4377317

Вопрос

Я мигрирующую проект из 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>

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top