C# 如何根据MVC4中的条件从模型中删除[必需的]验证器?
我有一个用户模型和两个属性password和confirm password在注册页面中都是必需的,但在编辑用户页面中不是必需的。因为我在两个不同的视图中使用了一个通用的用户模型C# 如何根据MVC4中的条件从模型中删除[必需的]验证器?,c#,asp.net-mvc,asp.net-mvc-4,validation,C#,Asp.net Mvc,Asp.net Mvc 4,Validation,我有一个用户模型和两个属性password和confirm password在注册页面中都是必需的,但在编辑用户页面中不是必需的。因为我在两个不同的视图中使用了一个通用的用户模型 如何在asp.net MVC 4中实现这一点?根据定义,视图模型特定于它们所服务的视图。因此,注册页面应该有它的视图模型,而编辑配置文件页面应该有一个单独的视图模型,即使它们似乎具有非常相似的属性 从长远来看,确保为适应一个视图的需求而对公共视图模型所做的更改不会在视图模型所用于的其他视图中产生错误会更麻烦 不断重复“
如何在asp.net MVC 4中实现这一点?根据定义,视图模型特定于它们所服务的视图。因此,注册页面应该有它的视图模型,而编辑配置文件页面应该有一个单独的视图模型,即使它们似乎具有非常相似的属性 从长远来看,确保为适应一个视图的需求而对公共视图模型所做的更改不会在视图模型所用于的其他视图中产生错误会更麻烦
不断重复“每个视图一个模型”的咒语会有所帮助。最好不要混用模型。。否则,您必须忽略
ModelState.IsValid
属性,并在视图中使用ViewModels
检查模型,而不是模型本身。这是正确的。如果您喜欢具有相同名称的属性,请提取一个用于两个单独模型的接口。