首页 > 代码库 > ASP.NET MVC里ModelState.IsValid总是true或者总是false
ASP.NET MVC里ModelState.IsValid总是true或者总是false
model的属性如果不加验证相关的特性,ModelState.IsValid会永远为true;如果加了验证相关的特性,不满足验证规则时,ModelState.IsValid为false.
接收到参数属性类型与Model定义不符时,ModelState.IsValid也会为false.
参数模型:
public class PersonModel { public string FirstName { get; set; } public string LastName { get; set; } public int Status { get; set; } }
控制器代码:
[HttpPost] public string ReceivePerson(PersonModel model) { if (!ModelState.IsValid) { var msg = string.Empty; foreach(var value in ModelState.Values) { if(value.Errors.Count>0) { foreach(var error in value.Errors) { msg = msg + error.ErrorMessage; } } } return msg; } else return "成功"; } public string Index() { return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); }
当给Status传一个“*”时,ModelState.IsValid为false,错误信息为:值“*”对于 Status 无效。
如果给某个Model的某个字段加上验证特性,比如LastName必需:
public class PersonModel { public string FirstName { get; set; } [Required()] public string LastName { get; set; } public int Status { get; set; } }
当LastName为空时,可以看到ModelState.IsValid为false,错误信息为:LastName 字段是必需的。
现在可以知道ModelState.IsValid总是为false或总是为true了。
ASP.NET MVC里ModelState.IsValid总是true或者总是false
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。