.net-core - 我收到属性的模型状态错误我没有设置使用流利验证的规则
问题描述
我想执行一个补丁请求,因为模型状态无效,我为我设置规则的属性和我没有设置规则的 Id 属性遇到了验证错误。
注意:我在 startUp.cs 类中将 SuppressModelStateInvalidFilter 设置为 true。
这是我的模型的验证规则。
public class UserForUpdateDtoValidator : AbstractValidator<UserForUpdateDTO>
{
public UserForUpdateDtoValidator()
{
RuleFor(x => x.Phone)
.NotEmpty().WithMessage("Enter a valid value")
.Matches(@"^([0-9]{11})$").WithMessage("Enter a valid value");
RuleFor(x => x.Gender)
.NotEmpty().WithMessage("Enter a valid value")
.Must((u, s) => s.ToLower() =="male" || s.ToLower() == "female")
.WithMessage("Enter a valid value");
}
}
我的动作看起来像这样
[HttpPatch]
[Route("{id}")]
[ProducesResponseType(typeof(SucessResponse<UserDTO>), 200)]
public async Task<IActionResult> UpdateUser(UserForUpdateDTO model, Guid id)
{
try
{
if (!ModelState.IsValid)
{
return BadRequest(new ErrorResponse<Dictionary<string, string[]>>
{
success = false,
message = "User details update failed",
errors = ModelState.Error()
});
}
}
}
这是我的错误信息
{
"success": false,
"message": "User details update failed",
"errors": {
"id": [],
"phone": [
"Enter a valid value"
],
"gender": [
"Enter a valid value"
]
}
}
有没有办法从错误中排除 id 字段,因为我没有为它设置规则。
注意。如果性别和电话属性有效,则返回 200 OK 响应。
解决方案
推荐阅读
- wordpress - NPM 在“npm install”期间失败,出现“npm ERR!超出最大调用堆栈大小'错误
- google-sheets - 查找未排序数组之间的匹配项并检索找到的匹配项的对应值
- javascript - 单击容器的一侧时禁用/清除功能
- .net - 测试嵌套函数是否在 void 方法中使用 moq 调用
- .htaccess - 如何将所有子域重定向到 https
- python - 从 map 函数返回一个字典
- python - 使用 pandas 导入文本文件
- excel - 如果代码在不同的文件中,如何在目标文件中进行更改
- flutter - 如何变量值来自firestore数据库?
- c# - XDocument 到 DataTable 异步