У меня возникла очень странная проблема, из-за которой я не могу найти причину.MVC Html атрибут рендеринга атрибутов данных
В моем приложении ASP.NET MVP (.net4.0/MVC4) Я разглаживаю атрибуты данных html внутри некоторого элемента html, чтобы затем использоваться в JavaScript.
Так что в приложении у меня есть модель, например.
public class MyModel{
public bool MyFlag { get; set; }
}
Я затем передать эту модель через на простой вид страницы MVC и делает логическое значение в атрибуте данных HTML, например
@model MyProject.MyModel
<a href="#" data-is-flagged="@Model.MyFlag">Click Me</a>
Теперь при запуске проекта на местном уровне HTML, визуализируется как:
<a href="#" data-is-flagged="True">Click Me</a>
Однако при работе на сервере, HTML отображается как:
<a href="#" data-is-flagged="data-is-flagged">Click Me</a>
Сначала я подумал что, возможно, логическое значение не задавалось каким-то образом, поэтому я добавил его к элементу Click Me @Model.MyFlag
, который отображается как Click Me True
. Теперь я подозревал, что это может быть связано с режимом Debug vs Release, однако после игры с этим это не имело никакого значения.
Моим решением было изменить код для вывода логического значения в виде строкового значения, например. data-is-flagged="@Model.MyFlag.ToString()"
, который затем отображает то же самое локально и на сервере.
Любые идеи, в чем причина этого?
Используете ли вы тот же браузер при тестировании локально и тестируете развернутую версию? – jadarnel27
@ jadarnel27 Да, тот же браузер. Также попробовали альтернативные браузеры. –
Возможно ли, что у вас есть какая-то другая версия механизма просмотра Razor, работающая локально и сервер? Поведение, которое вы видите на сервере, выглядит как функция атрибутов условных html, введенных в Razor 2. – Peter