MVC4: булевы атрибуты HTML5 отображаются со значением True/False
Я пытаюсь сделать радио-кнопку с некоторыми логическими атрибутами (обязательными и отключенными), используя:
@Html.RadioButton("radio-name","false", new { id="test", required=Model.BooleanValue})
а также
<input type="radio" name="radio-name" id="radio-name-no" value="false" class="radio" @if (!Model.BooleanValue) { <text>required</text> } disabled="@Model.BooleanValue" />
Но вывод таков:
<input id="test" name="radio-name" required="False" value="false" type="radio">
а также
<input name="radio-name" id="radio-name-no" value="false" class="radio" disabled="True" type="radio">
MVC4 должен отображать логические атрибуты в соответствии со спецификациями HTML5, так почему он выводит disabled="True"
(или же False
) вместо disabled="disabled"
или же disabled
(или вообще ничего, если BooleanValue
свойство false
)?
1 ответ
Решение было довольно странным. Выполняя некоторые тесты, я поместил @if в тег ввода HTML. Это если был использован, чтобы показать required
приписывать. После этого @if я поставил disabled="@Model.BooleanValue"
приписывать.
Похоже, что этот порядок нарушил ожидаемое поведение. Размещение disabled
атрибут, прежде чем @if решил проблему (позже я удалил @if и преобразовал его в required="@(!Model.BooleanValue)"
).
Теперь рабочий код:
<input type="radio" name="radio-name" id="radio-name-no" value="false" class="radio" required="@(!Model.BooleanValue)" disabled="@Model.BooleanValue" />