2014-01-07 31 views
2

在asp.net MVC中,我想檢索某些字段的驗證屬性。爲什麼HtmlHelper.GetUnobtrusiveValidationAttributes在被調用時刪除屬性?

爲此,我使用了HtmlHelper.GetUnobtrusiveValidationAttributes()方法。 第一次被調用時,它按照預期返回一組屬性。但是,如果第二次調用,屬性是空的。

例如:

var attributes = htmlHelper.GetUnobtrusiveValidationAttributes(propertyName); 
var attributes2 = htmlHelper.GetUnobtrusiveValidationAttributes(propertyName); 

attributes2是空的。

這是我的問題,因爲我查fieldB的驗證特性而呈現FIELDA但是當fieldB呈現,屬性都沒有了。

這是一個已知的行爲?我錯過了什麼嗎?如何保存GetUnobtrusiveValidationAttributes調用之間的驗證屬性?

在此先感謝

回答

4

這是設計。 Html.ViewContext.FormContext包含它認爲已被渲染的字段列表;當您第一次調用GetUnobtrusiveValidationAttributes時,它會將您的字段標記爲呈現狀態,隨後的調用將返回一個空集合。

您可以設置字段做這個未呈現:

Html.ViewContext.FormContext.RenderedField(ViewData.TemplateInfo.GetFullHtmlFieldName(propertyName), false); 
相關問題