您可以使用InvalidModelStateResult的ExecuteAsync方法(ApiController的BadRequest()方法的返回类型)来实现所需的输出,该方法实际上序列化了ModelState.

因此,我们的想法是创建一个新类,该类扩展InvalidModelStateResult并覆盖ExecuteAsync方法以更改状态代码.

public class ModelStateResult : InvalidModelStateResult

{

private readonly HttpStatusCode _status;

public ModelStateResult(ModelStateDictionary modelState, ApiController controller, HttpStatusCode status) : base(modelState, controller)

{

_status = status;

}

public override Task ExecuteAsync(CancellationToken cancellationToken)

{

var response = base.ExecuteAsync(cancellationToken).Result;

response.StatusCode = _status;

return Task.FromResult(response);

}

}

使用它像:

return new ModelStateResult(ModelState, this, HttpStatusCode.Forbidden); //this refers to ApiController here

我认为这只是一个解决方法,希望有人发布更好的方法来实现它.

编辑:

不使用InvalidModelStateResult:

public class ModelStateResult : IHttpActionResult

{

public HttpStatusCode Status { get; }

public ModelStateDictionary ModelState { get; }

public HttpRequestMessage Request { get; }

public ModelStateResult(HttpStatusCode status, ModelStateDictionary modelState, HttpRequestMessage request)

{

Status = status;

ModelState = modelState;

Request = request;

}

public Task ExecuteAsync(CancellationToken cancellationToken)

{

var response = Request.CreateErrorResponse(Status, ModelState);

return Task.FromResult(response);

}

}

c# forbidden.html,c# – 如何使用Forbidden状态web api返回ModelState相关推荐

  1. web api开启错误提示_当HTTP状态代码不足时:处理Web API错误报告

    web api开启错误提示 RESTful Web API设计的一个领域(经常被忽视)是如何报告与业务或应用程序有关的错误和问题. 首先要想到HTTP状态代码的正确用法,尽管非常方便,但通常它的信息量 ...

  2. 当HTTP状态代码不足时:处理Web API错误报告

    RESTful Web API设计的一个领域(经常被忽视)是如何报告与业务或应用程序有关的错误和问题. 首先要想到HTTP状态代码的正确用法,尽管它非常方便,但通常它的信息量还不够. 让我们以400错 ...

  3. html5画电池状态,HTML5的一个显示电池状态的API简介

    这篇文章主要介绍了HTML5的一个显示电池状态的API简介,由Mozilla设计,具体的设备和浏览器支持情况还要通过检测才能确定,需要的朋友可以参考下 移动设备的份额在网络流量中在大量增长,其所贡献的 ...

  4. c# webapi返回html,c#-从Web API 2端点返回自定义HTTP状态代码

    c#-从Web API 2端点返回自定义HTTP状态代码 我正在使用WebAPI 2中的服务,并且端点当前返回IHttpActionResult.我想返回状态码BadResult(message),但 ...

  5. 手机在网状态查询api接口详解

    手机在网状态查询就是指客户手机号码的在营运商数据库中标注的状态,有正常使用.停机.销号.未启用.异常.预销户.在网但不可用等一系列状态.而手机在网状态查询接口则是指通过接入api接口的实时数据对客户的 ...

  6. ajax对象状态0,ajax返回readyState为0?

    请求ajax报错, XMLHttpRequest对象返回readyState:0, status:0 相关代码 function login(){ var phone = '18600000000'; ...

  7. 无状态逻辑服务器,无状态 | RESTful API 中文网

    无状态 根据REST(REpresentational "State" Transfer)体系结构,服务器不会在服务器端存储有关客户端会话的任何状态.这种限制称为无状态.从客户端到 ...

  8. promise的状态以及api介绍_Promise从入门到自定义 | 尚硅谷Promise新版视频发布!

    尚硅谷发布全新升级版前端课程,推出"5+100+3"人才培养新模式,5.5个月系统学习+100课时进阶课程+3年谷粒学院VIP课程,为技术成长持续赋能,打造前端架构师!预知详情,猛 ...

  9. SAP Leonardo Machine Learning处于deprecated状态的API和其替代者

    我在api.sap.com上发现很多Machine Learning相关的API都已经标注为deprecated状态了: https://api.sap.com/api/topic_detection ...

最新文章

  1. java调用net_Java调用C#.net开发的WebService
  2. 【Kaggle-MNIST之路】自定义程序结构(七)
  3. java对象赋值_Java 对象不使用时为什么要赋值为 null?
  4. 乱想-HTTP请求常用对象
  5. 渲染好的页面怎么转为图片_图片导成PDF后页面大小不同怎么办
  6. linux7添加两个网关,RHEL7设置IP地址、网关和DNS
  7. 全国计算机等级考试题库二级C操作题100套(第05套)
  8. css flex布局 模型(CSS justify-content 属性) - 代码案例
  9. 每个程序员都应该知道的一些访问时延值
  10. app运营推广投放策略
  11. 计算机组装与维护结构图,图解计算机组装与维护
  12. 前端二维表转化树结构。支持无限套娃
  13. android内窥镜安装软件,DEPSTECH内窥镜
  14. 水平面:篡命铜钱の1
  15. Markdown离线编辑器
  16. 【Arduino学习】01.开发板选择和环境的搭建
  17. expected an indented block报错的原因
  18. 分布式系统相关书籍pdf免费下载
  19. 转载Creo标注三维模型的尺寸
  20. java基础面试题总结(2023版)

热门文章

  1. 减小Delphi的Exe文件大小
  2. 在C#程序中实现插件架构
  3. java连接各数据库的语句
  4. Delphi动态数组详解
  5. 用户自定义一个异常,编程创建并抛出某个异常类的实例。运行该程序并观察执行结果。
  6. android设置提交的隐藏域以及在onItemClick中获取对应的数据
  7. html中调用flex中的函数
  8. 如何制作LINUX的patch文件及如何打patch
  9. ACM-ICPC 2018 徐州赛区网络预赛 Features Track(STL二维map)
  10. 携程基于大数据分析的实时风控体系