首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >.NET Web API -使用ModelState进行错误响应

.NET Web API -使用ModelState进行错误响应
EN

Stack Overflow用户
提问于 2016-08-27 11:54:36
回答 1查看 15.6K关注 0票数 9

我正在使用.NET Web API2.2在C#中构建一个应用程序接口。我正在验证请求,并通过ModelState返回一个“错误”响应。

代码语言:javascript
复制
[ResponseType(typeof(IEnumerable<CustomerModel>))]
public IHttpActionResult Get([FromBody]List<CustomerSearchModel> row)
{
    if (ModelState.IsValid)
    {
        CustomerLookupModel model = new CustomerLookupModel(row);
        model.Init();
        model.Load();

        return Ok(model.Customers);
    }
    else
    {
        return BadRequest(ModelState);
    }
}

这是一个“错误”响应示例。

代码语言:javascript
复制
{
    "message": "The request is invalid.",
    "modelState": {
        "row[0].Country": ["'Country' should not be empty."]
    }
}

在'error‘响应中,我想将单词'modelState’更改为'error‘。我想我可以通过复制'ModelState‘对象并将其命名为’error‘来做到这一点……并将其包含在BadRequest中。

代码语言:javascript
复制
return BadRequest(error);

这不管用。我一定漏掉了一些简单的东西。

EN

Stack Overflow用户

回答已采纳

发布于 2016-08-27 12:06:57

返回匿名对象:

代码语言:javascript
复制
 public HttpResponseMessage GetModelStateErrors()
    {

        //return Request.CreateResponse(HttpStatusCode.OK, new Product());

        ModelState.AddModelError("EmployeeId", "Employee Id is required.");
        ModelState.AddModelError("EmployeeId", "Employee Id should be integer");
        ModelState.AddModelError("Address", "Address is required");
        ModelState.AddModelError("Email", "Email is required");
        ModelState.AddModelError("Email", "Invalid Email provided.");

        var error = new {
            message = "The request is invalid.",
            error = ModelState.Values.SelectMany(e=> e.Errors.Select(er=>er.ErrorMessage))
        };

        return Request.CreateResponse(HttpStatusCode.BadRequest, error);
    }

Fiddler输出:

票数 20
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39177299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档