gpt4 book ai didi

c# - ASP.NET Core 和 CreateErrorResponse

转载 作者:行者123 更新时间:2023-12-02 02:08:23 27 4
gpt4 key购买 nike

我想从我的 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/HttpRequestMessageExtensionsSystem.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);
}
}
}

关于c# - ASP.NET Core 和 CreateErrorResponse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35963210/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com