在asp.net MVC中,我想检索某些字段的验证属性。
为此,我使用了HtmlHelper.GetUnobtrusiveValidationAttributes()方法。 第一次被调用时,它会按预期返回一组属性。但是,如果第二次调用,则属性为空。
示例:
var attributes = htmlHelper.GetUnobtrusiveValidationAttributes(propertyName);
var attributes2 = htmlHelper.GetUnobtrusiveValidationAttributes(propertyName);
attributes2为空。
这对我来说是一个问题,因为我在渲染 fieldA 时检查 fieldB 的验证属性,但是当渲染 fieldB 时,属性消失了
这是一种已知行为吗?我错过了什么吗?如何在GetUnobtrusiveValidationAttributes调用之间保留验证属性?
提前致谢
答案 0 :(得分:6)
这是设计的。 Html.ViewContext.FormContext
包含它认为已呈现的字段列表;当你第一次将你的字段标记为已渲染时调用GetUnobtrusiveValidationAttributes
时,后续调用将返回一个空集合。
您可以通过执行以下操作将该字段设置为未呈现:
Html.ViewContext.FormContext.RenderedField(ViewData.TemplateInfo.GetFullHtmlFieldName(propertyName), false);