首页 > 解决方案 > 如何在解析响应中取消 webapi bulit

问题描述

首先它发生在 webapi 2.2 而不是旧的 https://devblogs.microsoft.com/aspnet/asp-net-core-2-1-web-apis/

我从 webapi 响应中得到

{
    "ProductValue": [
        "The input was not valid."
    ]
}

我如何取消此响应并在

ModelState.IsValid

我需要返回更多字段来响应

这个反应对我不利

对于那些在 dubug 中难以理解的人,我根本不进入这个函数,因为内置机制的 web api 返回他的响应 instend 我的 {code=9}

public MyResponse Start(Request req)
{
    if (ModelState.IsValid)
    {
        return new MyResponse(){code=0} ;
    }
     return new MyResponse(){code=9} ;
}

标签: c#asp.net-core-2.0

解决方案


不确定您要实现的目标,但如果您想发送自己的自定义错误响应,那么您可能可以执行以下操作(假设)

Product p = GetProduct(productvalue);
if (p == null)
{
    HttpError err = new HttpError($"Product with productvalue {productvalue} not found");
    return Request.CreateResponse(HttpStatusCode.NotFound, err);
}
else
{
    return Request.CreateResponse(HttpStatusCode.OK, p);
} 

推荐阅读