asp.net-mvc – 在null模型的情况下返回错误响应
发布时间:2020-12-16 04:25:27 所属栏目:asp.Net 来源:网络整理
导读:在我的ASP.NET MVC API应用程序中,如果缺少一些必需字段,我可以返回一个有用的ErrorResponse: return Request.CreateErrorResponse(HttpStatusCode.BadRequest,ModelState); – "Message": "The request is invalid.","ModelState": { "myModel.FooA": [ "T
在我的ASP.NET MVC API应用程序中,如果缺少一些必需字段,我可以返回一个有用的ErrorResponse:
return Request.CreateErrorResponse(HttpStatusCode.BadRequest,ModelState); – "Message": "The request is invalid.","ModelState": { "myModel.FooA": [ "The FooA is required." ],"myModel.FooC": [ "The FooC property is required." ],"myModel.FooD": [ "The FooD property is required." ] } 但是,当this answer确认时,NULL模型将验证.由于我不允许这样做,如何返回一个同样有用的错误响应,说明所需的所有值?我知道我可以为每个属性手动添加ModelError,但我怀疑CreateErrorResponse可能有一种方法可以为我做这个. 解决方法
你使用的是mvc3还是web-api?你的标签表明你正在使用mvc,但你的开头句意味着web-api.如果使用mvc3,您可以使用以下内容:
在调用ModelState.IsValid之前在控制器中添加: if (modelObj == null) { ModelState.Clear(); var blankModel = new MyClass(); TryValidateModel(blankModel); return View("About",blankModel); } 如果您正在使用web-api并假设您正在使用System.ComponentModel.DataAnnotations,则可以使用以下命令: ModelState.Clear(); var model = new MyClass(); var results = new List<ValidationResult>(); Validator.TryValidateObject(model,new ValidationContext(model,null,null),results,true); var modelState = new ModelStateDictionary(); foreach (var validationResult in results) modelState.AddModelError(validationResult.MemberNames.ToArray()[0],validationResult.ErrorMessage); return Request.CreateErrorResponse(HttpStatusCode.BadRequest,modelState); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – N2 for MVC – 如何让Zones工作?
- asp.net-mvc-routing – 如何防止Url.RouteUrl(…)从当前请
- asp.net-mvc – 如何单元测试返回ContentResult的ActionRes
- 五幅图演示ASP.NET编译过程
- asp.net-mvc – ASP.NET MVC:如果视图有错误,如何发出编译
- asp.net-mvc – 如何处理ASP.NET MVC中动态生成的表单的输出
- ASP.NET UpdatePanel库引用错误
- asp.net-mvc – IIS Express – HTTP错误500.19 0x800700b7
- asp.net-mvc – 如何根据用户过滤MVC 4中的结果
- asp.net-mvc – 验证消息中的换行符