Как отменить webapi bulit в ответе на разбор - PullRequest
0 голосов
/ 05 марта 2019

сначала это то, что происходит в webapi 2.2, а не в старом https://devblogs.microsoft.com/aspnet/asp-net-core-2-1-web-apis/

Я получаю ответ от webapi

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

какя отменяю этот ответ и просто получаю false в

ModelState.IsValid

мне нужно вернуть больше полей к ответу

и этот ответ не хорошдля меня

для тех, кому трудно понять в дабуге, я вообще не вхожу в эту функцию, потому что встроенный механизм веб-API возвращает мой ответ, мой {code = 9}

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

Ответы [ 2 ]

0 голосов
/ 07 марта 2019
services.AddMvc()
    .ConfigureApiBehaviorOptions(options =>
    {
        options.SuppressModelStateInvalidFilter = true;

    });

благодаря Кирку Ларкину

0 голосов
/ 05 марта 2019

Не совсем уверен, что вы пытаетесь достичь, но если вы хотите отправить свой собственный ответ об ошибке, то вы можете сделать что-то вроде ниже (гипотетически)

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);
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...