加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – ASP.NET Core和CreateErrorResponse

发布时间:2020-12-15 20:58:43 所属栏目:百科 来源:网络整理
导读:我想从我的API方法返回无效的ModelState,并尝试使用它在Web Api中: return Request.CreateErrorResponse(HttpStatusCode.BadRequest,"Test"); 但它说,那 Severity Code Description Project File Line Suppression State Error CS1929 ‘HttpRequest’ does
我想从我的API方法返回无效的ModelState,并尝试使用它在Web Api中:

return Request.CreateErrorResponse(HttpStatusCode.BadRequest,"Test");

但它说,那

Severity Code Description Project File Line Suppression State
Error CS1929 ‘HttpRequest’ does not contain a definition for
‘CreateErrorResponse’ and the best extension method overload
‘HttpRequestMessageExtensions.CreateErrorResponse(HttpRequestMessage,
HttpStatusCode,string)’ requires a receiver of type
‘HttpRequestMessage’

所以,ASP.NET Core中的内容发生了变化,我应该将HttpRequestMessage作为第一个参数包含在内.但是如何创建它以及为什么它必须作出回应呢?

编辑:

我发现,以下代码可以返回无效模型:

return HttpBadRequest(ModelState);

但无论如何,想要知道灵活的方法来返回我自己的错误响应.

解决方法

我发现mono还没有实现这些; System.Web.Http / HttpRequestMessageExtensions将扩展方法添加到System.Net.Http.你可以自己做

namespace System.Web.Http
{
    public static class ApiControllerExtensions
    {
        [System.Xml.Serialization.XmlRoot(ElementName = "Error",Namespace = "")]
        public class ErrorResponse
        {
            public string StatusCode { get; set; }
            public string Message { get; set; }
        }
        public static HttpResponseException CreateErrorResponseException(this ApiController controller,HttpStatusCode statusCode,string message)
        {
            ErrorResponse error = new ErrorResponse() 
            { 
                StatusCode = (int)statusCode + ": " + statusCode.ToString(),Message = message 
            };
            HttpResponseMessage responseMessage = controller.Request.CreateResponse(statusCode,error,controller.Request.GetConfiguration());
            return new HttpResponseException(responseMessage);
        }
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读