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

MVC4: HTML5 boolean attributes rendered with True/False value

我正在尝试使用以下方法呈现具有某些布尔属性(必需和禁用)的单选按钮:

@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,则什么也没有)?

解决方案很奇怪。在做一些测试时,我在 HTML 输入标签中放置了一个 @if 。此 if 用于显示 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" />