c# - EditorFor/CheckBoxFor bool 值将 data-val-required 属性添加到 HTML,而无需将 required 属性添加到模型

标签 c# asp.net-mvc razor asp.net-mvc-4

我的模型类有一个没有 Required 属性的 bool 属性:

public class Test
{        
    public bool TestBool1 { get; set; }
}

然后在我的 razor view 中使用 EditorFor(同样的事情也发生在 CheckBoxFor 上):

<div>
    @Html.LabelFor(m => m.TestBool1)
    @Html.EditorFor(m => m.TestBool1)
</div>

这会产生以下 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>

data-val-required html 属性从哪里来?

有没有办法在不使用 @Html.CheckBox("TestBool1", Model.TestBool1) 并将类型设置为 bool? 的情况下阻止它执行此操作?

最佳答案

来自这个答案Data annotations, why does boolean prop.IsRequired always equal true

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;

Add this to your application_start. By default MVC adds [Required] to non-nullable value types (because you can't convert null into a bool, it must be a bool?)

你可以阻止它发生,但因为你总是发送 bool(真或假)我通常离开它

关于c# - EditorFor/CheckBoxFor bool 值将 data-val-required 属性添加到 HTML,而无需将 required 属性添加到模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15407235/

相关文章:

c# - 具有 2FA : List of Trusted Browsers 的 Asp.Net 身份

c# - 添加注释后如何更新对SymbolInfo中SyntaxNode的引用?

html - 如何优化生成的文档表单 html 和样式

asp.net-mvc - Asp.Net MVC 在相对路径的 href 属性中使用波浪号

.net - HTTP 错误 403.14 - 禁止 - MVC4 .net 4.5 包

c# - 如何使用 Linq 将制表符分隔文件读入多维数组?

c# - 传递 @Html.DisplayFor() - 从 View 到 Controller 的值

jquery - 如何在 Visual Studio 2010 MVC 2 Web 元素中添加 jQuery?

c# - 如何在没有 default.htm 页面的情况下使用 ServiceStack MVC 库

asp.net-mvc-3 - mvc3 - 在不同区域使用局部 View