【问题标题】:How to do validation operations with json?如何使用 json 进行验证操作?
【发布时间】:2022-01-16 11:56:29
【问题描述】:

我想在数据表中输入数据的模式中执行验证操作,但我之前没有使用过任务。我应该在它说 ***** 的地方写什么?这样做对吗?

    [HttpPost]
        public Task<JsonResult> AddNews( News newss)
        {
            NewsValidator vn = new NewsValidator();
            ValidationResult result = vn.Validate(newss);
            if (result.IsValid)
            {
            var sonuc=  _adminService.addnws(newss);
            return Task.FromResult(Json(sonuc));
            }
            else
            {
                foreach (var item in result.Errors)
                {
                    ModelState.AddModelError(item.PropertyName, item.ErrorMessage);
                }
            }
           return *******();
        }

【问题讨论】:

  • 我不知道你为什么认为你需要Task。我没有看到任何await
  • 我正在对一个现成的项目进行粗加工操作。我是实习新手,还不知道:)项目是用net core做的,也许你能理解。
  • 如果模型包含验证错误,您希望返回什么 HTTP 状态代码?
  • 没关系
  • 不,这很重要。

标签: c# json asp.net-core validation fluentvalidation


【解决方案1】:

您可以在您的News 对象中实现IValidatbleObject 接口。 asp.net modelbinder 将根据您在News 对象中的自定义验证逻辑处理验证,如果未验证则返回400。这也应该使您的 NewsValidator 类盈余,从而减少您的代码。

一般来说,我建议使用内置模型验证,而不是自己做。你可以在这里阅读更多信息:https://docs.microsoft.com/en-us/aspnet/core/mvc/models/validation?view=aspnetcore-6.0

另外,请记住将您的方法标记为异步,并避免使用 Task.FromResult。尽量使用await,避免出现异常情况。

【讨论】:

    猜你喜欢
    • 2020-01-03
    • 1970-01-01
    • 2018-11-29
    • 2018-09-15
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-13
    相关资源
    最近更新 更多