第一个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帮助器在内部调用HtmlHelper
的GetUnobtrusiveValidationAttributes()
方法。 从源代码 (我的重点)
如果启用了不显眼的客户端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