ModelState.IsValid 验证枚举类型
时间: 2023-06-21 08:13:50 浏览: 65
在使用ModelState.IsValid验证模型时,可以通过枚举类型来验证模型。如果要验证的属性是枚举类型,可以使用Enum.IsDefined方法来验证该属性的值是否为枚举类型中定义的值。以下是一个示例:
```csharp
public enum Gender
{
Male,
Female
}
public class Person
{
public string Name { get; set; }
public Gender Gender { get; set; }
}
[HttpPost]
public IActionResult Create(Person person)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (!Enum.IsDefined(typeof(Gender), person.Gender))
{
ModelState.AddModelError(nameof(person.Gender), "Invalid gender selected.");
return BadRequest(ModelState);
}
// Save person to database
return Ok();
}
```
在上面的示例中,我们首先使用ModelState.IsValid验证模型的其他属性。然后,我们使用Enum.IsDefined方法来验证Gender属性的值是否为Gender枚举类型中定义的值。如果不是,我们将添加一个错误到ModelState中,并返回BadRequest结果。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)