现在,我有一个这样的模型:
namespace TestMVC.Models.ViewModel
{
public partial class User
{
public string Name { get; set; }
public int Age { get; set; }
public string Email { get; set; }
}
[MetadataType(typeof(UserMetaData))]
public partial class User
{
}
public class UserMetaData
{
[Display(Name = "Name")]
public string Name { get; set; }
[Display(Name = "Age")]
public int Age { get; set; }
[Display(Name = "Email")]
[RegularExpression(@"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$", ErrorMessage = "The email is invalid")]
public string Email { get; set; }
}
}
我有一个像这样的方法:
public ActionResult ValidCheck()
{
ModelState.AddModelError("error", "error");
Models.ViewModel.User model = new Models.ViewModel.User();
model.Age = 12;
model.Name = "Andy He";
model.Email = "123";
//TryValidateModel(model);
}
我想通过方法来检查模型是否有效并获取错误消息,我尝试使用TryValideModel但它只能获得模型有效的结果,无法获取错误消息,是否有方法可以做到吗?你能帮助我吗?
答案 0 :(得分:7)
为特定键添加错误。像这样用。
ModelState.AddModelError("yourModelPropety", "error");
这里为特定密钥设置模型错误。
使用ModelState.IsValid属性。它告诉您是否有任何模型错误已添加到ModelState。 ModelState.Isvalid
试试这样。
ModelState.AddModelError("Email ", "error"); here you are setting model error for particular key.
if(!ModelState.IsValid)
{
// do something to display errors .
foreach (ModelState modelState in ViewData.ModelState.Values) {
foreach (ModelError error in modelState.Errors) {
DoSomethingWith(error);
}
}
}