Mig*_*ruz 3 asp.net asp.net-mvc
在asp.net MVC中,我想检索某些字段的验证属性.
为此,我使用了HtmlHelper.GetUnobtrusiveValidationAttributes()方法.第一次被调用时,它会按预期返回一组属性.但是,如果第二次调用,则属性为空.
例:
var attributes = htmlHelper.GetUnobtrusiveValidationAttributes(propertyName);
var attributes2 = htmlHelper.GetUnobtrusiveValidationAttributes(propertyName);
Run Code Online (Sandbox Code Playgroud)
attributes2为空.
这是我的问题,因为我检查的验证特性fieldB而呈现FIELDA但是当fieldB呈现,属性都没有了.
这是一种已知行为吗?我错过了什么吗?如何在GetUnobtrusiveValidationAttributes调用之间保留验证属性?
提前致谢
这是设计的.Html.ViewContext.FormContext包含它认为已呈现的字段列表; 当您GetUnobtrusiveValidationAttributes第一次调用它将字段标记为已渲染时,后续调用将返回一个空集合.
您可以通过执行以下操作将该字段设置为未呈现:
Html.ViewContext.FormContext.RenderedField(ViewData.TemplateInfo.GetFullHtmlFieldName(propertyName), false);
Run Code Online (Sandbox Code Playgroud)