相关疑难解决方法(0)

整数值的必需属性

我有一个带Id属性的viewmodel

[Required]
public int Id { get; set; }
Run Code Online (Sandbox Code Playgroud)

但我认为这个属性仅适用于字符串属性.

如果未设置Id,则Id的值为0且模型有效.

如果没有设置int属性的值,我该如何强制执行,模型将无效?

asp.net-mvc data-annotations

60
推荐指数
4
解决办法
3万
查看次数

根据需要验证正文中的不可为空属性 - AspNetCore 3.1

我试图验证是否在 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 …

c# asp.net-mvc .net-core asp.net-core asp.net-core-3.1

5
推荐指数
1
解决办法
1882
查看次数