Csharp/C#教程:第一个html助手生成客户端validation属性,而第二个没有分享


第一个html助手生成客户端validation属性,而第二个没有

假设我有这个模型:

public class Person { public bool IsApproved { get; set; } } 

并且这个代码,我试图用check类型呈现input

 @Html.CheckBoxFor(x => x.IsApproved) @Html.CheckBox("IsApproved") 

但是,结果是不同的:

 // CheckBoxFor result   // CheckBox result   

如何以及为什么 ,第一个生成客户端validation的属性,而另一个没有?

更新:

交换@Html.CheckBoxFor@Html.CheckBox的顺序后,标记元素的顺序没有改变。

CheckBox()帮助器不呈现data-val属性,因为表单已经为同一属性呈现了CheckBoxFor() 。 如果交换顺序,将为CheckBox() (而不是CheckBoxFor() )呈现data-val属性。

我的理解是,在解析表单时,这将导致jquery.validation.unobtrusive的潜在(重复)问题。

控件的html帮助器在内部调用HtmlHelperGetUnobtrusiveValidationAttributes()方法。 从源代码 (我的重点)

如果启用了不显眼的客户端validation,则仅渲染属性, 然后仅当我们从未在此表单中为具有此名称的字段提供validation时 。 此外,如果没有表单上下文,那么我们无法呈现属性(我们没有将它们附加到)

上述就是C#学习教程:第一个html助手生成客户端validation属性,而第二个没有分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 public IDictionary GetUnobtrusiveValidationAttributes(string name, ModelMetadata metadata) { 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/943038.html

(0)
上一篇 2021年11月13日
下一篇 2021年11月13日

精彩推荐