Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何根据MVC4中的条件从模型中删除[必需的]验证器?_C#_Asp.net Mvc_Asp.net Mvc 4_Validation - Fatal编程技术网

C# 如何根据MVC4中的条件从模型中删除[必需的]验证器?

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中实现这一点?根据定义,视图模型特定于它们所服务的视图。因此,注册页面应该有它的视图模型,而编辑配置文件页面应该有一个单独的视图模型,即使它们似乎具有非常相似的属性 从长远来看,确保为适应一个视图的需求而对公共视图模型所做的更改不会在视图模型所用于的其他视图中产生错误会更麻烦 不断重复“

我有一个用户模型和两个属性password和confirm password在注册页面中都是必需的,但在编辑用户页面中不是必需的。因为我在两个不同的视图中使用了一个通用的用户模型


如何在asp.net MVC 4中实现这一点?

根据定义,视图模型特定于它们所服务的视图。因此,注册页面应该有它的视图模型,而编辑配置文件页面应该有一个单独的视图模型,即使它们似乎具有非常相似的属性

从长远来看,确保为适应一个视图的需求而对公共视图模型所做的更改不会在视图模型所用于的其他视图中产生错误会更麻烦


不断重复“每个视图一个模型”的咒语会有所帮助。

最好不要混用模型。。否则,您必须忽略
ModelState.IsValid
属性,并在视图中使用
ViewModels
检查模型,而不是模型本身。这是正确的。如果您喜欢具有相同名称的属性,请提取一个用于两个单独模型的接口。