Ric*_*ton 8 c# asp.net-mvc razor asp.net-mvc-4
我的模型类有一个没有Required属性的bool属性:
public class Test
{
public bool TestBool1 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后在我的剃刀视图中我使用EditorFor(同样的事情也发生在CheckBoxFor上):
<div>
@Html.LabelFor(m => m.TestBool1)
@Html.EditorFor(m => m.TestBool1)
</div>
Run Code Online (Sandbox Code Playgroud)
这导致以下HTML:
<div>
<label for="TestBool1">TestBool1</label>
<input class="check-box" data-val="true" data-val-required="The TestBool1 field is required." id="TestBool1" name="TestBool1" type="checkbox" value="true">
<input name="TestBool1" type="hidden" value="false">
</div>
Run Code Online (Sandbox Code Playgroud)
data-val-required html属性来自哪里?
有没有办法阻止它这样做而不使用@Html.CheckBox("TestBool1", Model.TestBool1)和设置类型bool??
Pha*_*bus 13
从这个答案数据注释,为什么布尔prop.IsRequired始终等于true
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
将其添加到您的application_start.默认情况下,MVC将[Required]添加到不可为空的值类型(因为你不能将null转换为bool,它必须是bool?)
你可以防止它发生,但因为你总是发送bool(真或假)我通常会离开它
| 归档时间: |
|
| 查看次数: |
6987 次 |
| 最近记录: |