2010-03-16 43 views
4

我希望DefaultModelBinder不要根據DataAnnotations元數據執行任何驗證。我已經將DataAnnotations與DynamicData一起用於我的網站的管理區域,並且我需要針對基於MVC的前端的一組不同的驗證規則。我可以在DefaultModelBinder上禁用DataAnnotations驗證嗎?

我用MetadataType屬性裝飾我的類。如果我可以爲同一個模型使用不同的MetadataType類,但在不同的場景下使用會很好。如果沒有,我可以通過設置一些屬性或創建它的專用版本來禁用DefaultModelBinder驗證。

回答

6

看看ModelValidatorProviders.Providers集合,只留下必要的條目。

ModelValidatorProviders.Providers.Clear()應該可以很好地解決你的問題,但你仍然應該看看它是如何工作的。

+1

優秀。這就是我在Application_Start上使用的:ModelValidatorProviders.Providers.Remove(ModelValidatorProviders.Providers.Single(p => p是DataAnnotationsModelValidatorProvider));' – 2010-03-16 22:42:51

+0

@Max Toro:這應該可以正常工作,但你可以不需要也有IDataErrorInfo驗證。 – LukLed 2010-03-16 22:57:10

相關問題