我正在处理大型MVC3 Web应用程序,并且对ModelState.IsValid
方法感到烦恼。
我几乎所有的 Controller 都使用ModelState来验证发布的数据。
View 全部基于包含不同类的ViewModels,这些类显然包含可以标记为[Required]
的属性。
我遇到的问题是有时不需要必需的属性,而我必须使用ModelState.Remove
方法,以便ModelState.IsValid
变为true。
我的问题是使用ModelState.Remove
,这是做事的正确方法还是有更有效的方法?
最佳答案
如果您在两个不同的上下文中使用具有[Required]
属性的同一 View 模型,其中一个是必需属性,另一个是不需要属性,那么您将需要在操作时手动更改ModelState
。
一种替代方法是使用其他 View 模型。也许有一个具有所有属性的基类,除了所要求的属性外。然后从中导出两个 View 模型,一个具有所需属性的 View 模型,一个具有非必需属性的 View 模型(我知道这是重复的)。您可以决定将它们完全分开,而不使用继承。
关于asp.net-mvc - 使用ModelState.Remove处理ModelState是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6843171/