mvc4实体对象验证并可通过json返回至客户端的方法

发布日期:2014-11-08 13:35:51

使用ModelState.IsValid可以判断对象是否符合我们对属性设置的条件约束,但是如果想在服务端获取到没有符合验证的属性并且通过Json返回至前端处理的话可以通过以下思路处理。

    //实体对象

    public class User
    {
        private string name;


        [Required(ErrorMessage="用户名不能为空!")]
        [StringLength(10,MinimumLength=3,ErrorMessage="用户名长度必须为3到10")]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        private string password;


        [Required(ErrorMessage = "密码不能为空!")]
        [Display(Name = "password")]
        public string Password
        {
            get { return password; }
            set { password = value; }
        }
    }



//提交的页面

<form action="/Home/Login" method="post">

    用户名:<input name="name" type="text" /><br />
    密码:<input name="password" type="password" /><br />
    <input type="submit" value="提交" />
</form>

//action获取到所有结果的处理

        public string Login(User user)
        {
            if (ModelState.IsValid)
            {
                return "正确";
            }
            else
            {


                string result = string.Empty;
                foreach (var modelErrors in ModelState)
                {
                    result = result + modelErrors.Key + ":";
                    foreach (var e in modelErrors.Value.Errors)
                    {
                        result = result + e.ErrorMessage + ",";
                    }                
                }
                return result;
            }
        }