MVC4:使用True / False值呈现的HTML5布尔属性

时间:2017-11-15 09:16:54

标签: asp.net-mvc-4 razor-2

我尝试使用以下方法渲染带有一些布尔属性(必需和禁用)的单选按钮:

@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 个答案:

答案 0 :(得分:1)

解决方案很奇怪。在做一些测试时,我在HTML输入标签中放了一个@if。此if用于显示required属性。在这个@if之后,我放了disabled="@Model.BooleanValue"属性。

这个订单似乎打乱了预期的行为。在@if之前放置disabled属性解决了问题(后来我删除了@if并将其转换为required="@(!Model.BooleanValue)")。

现在工作代码是:

<input type="radio" name="radio-name" id="radio-name-no" value="false" class="radio" required="@(!Model.BooleanValue)" disabled="@Model.BooleanValue" />