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" />
我正在尝试使用以下方法呈现具有某些布尔属性(必需和禁用)的单选按钮:
@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" />