![](/img/trans.png)
[英]How to add a validation error in MVC for a view model with multiple properties?
[英]MVC Model Validation Multiple View
我有一个具有6个字段的模型类(所有字段都需要进行字段验证)。 我有两个使用此模型的视图。 我在一个视图中有三个字段(让我说abc.cshtml),而在另一个视图中又有六个字段(让我说xyz.cshtml),问题是,当我在abc.cshtml中提交表单并检查Controller中的ModelState.IsValid属性时,它正在验证所有未在视图上显示的字段,因此此属性似乎为false。 这是我的模特
public class UserModel
{
[Required(ErrorMessage = "Enter UserName")]
public string UserName { get; set; }
[Required(ErrorMessage = "Enter Password")]
public string Password { get; set; }
[Required(ErrorMessage = "Enter Firstname")]
public string Firstname { get; set; }
[Required(ErrorMessage = "Enter LastName")]
public string LastName { get; set; }
[Required(ErrorMessage = "Enter Contact")]
public string Contact { get; set; }
[Required(ErrorMessage = "Enter Address")]
public string Address { get; set; }
}
我在一个视图中只有“用户名”,“名”和“姓”,在另一个视图中只有六个。 我该如何解决这个问题?
public class BaseModel{
[Required(ErrorMessage = "Enter Firstname")]
public string Firstname { get; set; }
[Required(ErrorMessage = "Enter LastName")]
public string LastName { get; set; }
[Required(ErrorMessage = "Enter UserName")]
public string UserName { get; set; }
}
public class UserModel : BaseModel
{
[Required(ErrorMessage = "Enter Password")]
public string Password { get; set; }
[Required(ErrorMessage = "Enter Contact")]
public string Contact { get; set; }
[Required(ErrorMessage = "Enter Address")]
public string Address { get; set; }
}
Hope it will help you to reduce redundancy and work with different view also , i think that is he best way to tackle this kind of problem Thanks
在提交3个属性的情况下,在验证模型状态之前,请先清除其他属性的错误。
您可以通过执行以下操作来消除模型错误:
if (ModelState.ContainsKey("{key}"))
ModelState["{key}"].Errors.Clear();
键:属性名称
在您的情况下,有3个属性,因此必须使用它(如果有条件)三次或直接清除已知属性的错误。
然后使用
ModelState.IsValid
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.