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