Я сталкиваюсь каким-то странное поведение в ASP.Net MVC 4.Weird поведения с условными данными-атрибуты
на основе некоторой информации от моего ViewModel, я пытаюсь установить некоторые условные атрибуты, как так: <input type="checkbox" [email protected](Model.IsPrimary ? "true" : null) checked="@(Model.Selected ? "checked" : null)" disabled="@(Model.Disabled ? "disabled" : null) />
Это прекрасно работает и денди для атрибута checked
и disabled
, но по какой-то причине он всегда будет отображать атрибут data-primary
. Model.IsPrimary
приведет к правильному data-primary="true"
, но !Model.IsPrimary
приводит к пустому data-primary
attribte.
Это приводит к моему первому вопросу: Что вызывает это странное поведение? Это потому, что я использую атрибут data? Это черта внутри атрибута данных?
После этого я подумал: «Хорошо, конечно, что может легко быть исправлено», и сосредоточил свой код следующим образом: <input type="checkbox" @(Model.IsPrimary ? "data-primary=\"true\"" : String.Empty) checked="@(Model.Selected ? "checked" : null)" disabled="@(Model.Disabled ? "disabled" : null) />
Это фиксируется мой атрибут data-primary
показывается, но как-то сделал свой disabled
и checked
атрибуты появляются позже.
Мой второй вопрос сейчас В чем причина этого поведения? Насколько я могу судить, в моем коде нет синтаксических причуд.
Если у кого-то есть информация о том, почему бритва действует таким образом, ответьте.
PS: В конце концов, я «исправил» вещи, поместив свой атрибут data-primary
в конец входного элемента, заставив все действовать так, как ожидалось.