gpt4 book ai didi

asp.net-mvc - 根据 W3C 规范的 ASP.NET MVC 5 和 HTML 5 表单属性

转载 作者:行者123 更新时间:2023-12-04 22:47:10 25 4
gpt4 key购买 nike

据我所知,微软似乎使用 jQuery 验证属性作为表单输入属性的默认值。

如果我添加 Required 是否可以配置我的应用程序属性并使用 @Html.EditorFor(x => Model) 呈现我的表单表单将使用 required 呈现属性而不是 data-val-required ?还是我被迫自己写EditorTemplates适用于所有标准类型?

最佳答案

如果要替换标准data-*对于 ASP.NET MVC 使用的验证属性,您应该首先在 web.config 中禁用不显眼的客户端验证:

<add key="ClientValidationEnabled" value="false" />

这将防止 html 助手在您的输入字段上发出它们。

然后您可以为标准类型编写自定义编辑器模板。例如对于将是 ~/Views/Shared/editorTemplates/String.cshtml 的字符串:
@{
var attributes = new Dictionary<string, object>();
attributes["class"] = "text-box single-line";
if (ViewData.ModelMetadata.IsRequired)
{
attributes["required"] = "required";
}
}

@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, attributes)

仅此而已。现在每次你做 Html.EditorFor(x => x.Foo)哪里 Foo是一个字符串属性,它将生成以下标记:
<input class="text-box single-line" id="Foo" name="Foo" required="required" type="text" value="" />

还值得一提的是,如果您不想禁用不显眼的客户端验证和 data-*整个应用程序的属性,但仅适用于单个表单,您可以这样做:
@using (Html.BeginForm())
{
this.ViewContext.ClientValidationEnabled = false;
@Html.EditorFor(x => x.Foo)
}

关于asp.net-mvc - 根据 W3C 规范的 ASP.NET MVC 5 和 HTML 5 表单属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20160873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com