我有一个带Id属性的viewmodel
[Required]
public int Id { get; set; }
Run Code Online (Sandbox Code Playgroud)
但我认为这个属性仅适用于字符串属性.
如果未设置Id,则Id的值为0且模型有效.
如果没有设置int属性的值,我该如何强制执行,模型将无效?
我试图验证是否在 ModelState 无效的请求中完全忽略了属性/字段,并且 BadRequest 被发送回客户端,但是我正在努力处理请求正文中的不可为空类型。
[Required] public string NullableString { get; set; }
Run Code Online (Sandbox Code Playgroud)
public IActionResult RequiredNonNullableIntQueryString([Required]int nonNullableInt)
public IActionResult RequiredNullableStringQueryString([Required]string nullableString)
Run Code Online (Sandbox Code Playgroud)
public IActionResult RequiredNonNullableIntBody([FromBody]NonNullablesRequest request)
public class NonNullablesRequest
{
[Required] // I have also tried [BindRequired] with the same result.
public int NonNullableInt { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我读过了:
Microsoft 文档指出:
.NET Core 3.0 及更高版本中的验证系统将不可为 null 的参数或绑定属性视为具有 [Required] 特性。值类型(例如 decimal …