其他分享
首页 > 其他分享> > ModelState

ModelState

作者:互联网

https://www.cnblogs.com/basterdaidai/p/6679849.html

 

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了。

标签:ModelState,set,string,get,IsValid,public
来源: https://www.cnblogs.com/wugh8726254/p/14879643.html