加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何手动检查模型是否有效并获取错误消息

发布时间:2020-12-16 09:24:21 所属栏目:asp.Net 来源:网络整理
导读:现在,我有一个这样的模型: 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
现在,我有一个这样的模型:

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但它只能获得模型有效的结果,无法获取错误消息,是否有方法可以做这个?你能帮帮我吗?

解决方法

添加特定键的错误.像这样用.
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);
            }
        }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读