mvc4实体对象验证并可通过json返回至客户端的方法
使用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;
}
}