Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在解析响应中取消webapi bulit_C#_Asp.net Core 2.0 - Fatal编程技术网

C# 如何在解析响应中取消webapi bulit

C# 如何在解析响应中取消webapi bulit,c#,asp.net-core-2.0,C#,Asp.net Core 2.0,首先,它发生在webapi 2.2中,而不是旧版本中 我从webapi得到了响应 我是如何取消此响应并在中出错的 ModelState.IsValid 我需要返回更多字段以进行响应 这种反应对我来说并不好 对于那些在杜卜格很难理解的人,我不参加 这个函数根本不起作用,因为WebAPI是内置的机制 用他的回答代替我的回答 {code=9} 不完全确定您试图实现什么,但如果您想发送自己的自定义错误响应,那么您可能可以假设执行以下操作 Product p = GetProduct(productva

首先,它发生在webapi 2.2中,而不是旧版本中

我从webapi得到了响应

我是如何取消此响应并在中出错的

ModelState.IsValid

我需要返回更多字段以进行响应

这种反应对我来说并不好

对于那些在杜卜格很难理解的人,我不参加 这个函数根本不起作用,因为WebAPI是内置的机制 用他的回答代替我的回答 {code=9}


不完全确定您试图实现什么,但如果您想发送自己的自定义错误响应,那么您可能可以假设执行以下操作

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);
} 
感谢柯克·拉金


伙计,这需要更多的信息,你都不知道。我们能得到一个代码样本吗?最有可能的是,您将错误的类型传递给控制器,而webapi正在绑定,就像我写的一样,这是webapi响应,而不是我的,我想取消bulit in response并返回我的,如果模型无效您是否有权访问Web API代码?正如我前面所说,响应是Web API内置机制,在调试中,我不介入函数,因为webapi内置的机制响应返回他的响应,可能是webapi核心2,这是不正确的。这只是简单地绕过了内置机制,当模型状态无效时,它实际上不会替换或返回不同的响应
public MyResponse Start(Request req)
{
    if (ModelState.IsValid)
    {
        return new MyResponse(){code=0} ;
    }
     return new MyResponse(){code=9} ;
}
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);
} 
services.AddMvc()
    .ConfigureApiBehaviorOptions(options =>
    {
        options.SuppressModelStateInvalidFilter = true;

    });