【问题标题】:Returning Empty ActionResult返回空的 ActionResult
【发布时间】:2012-02-08 15:54:39
【问题描述】:

我可能会遇到需要返回错误请求结果的情况。

例如,调用了 MVC 3 站点的控制器操作,但请求 uri 中缺少必需的参数。

我会返回什么作为回应。我知道我可以做到:

Response.StatusCode = (int)HttpStatusCode.BadRequest;
return Content(string.Empty);

对于上述情况,这是正确的方法吗?

【问题讨论】:

  • 有一个EmptyResult类型供以后参考。
  • return new EmptyResult(); 关于@scottm 的评论。

标签: asp.net-mvc actionresult bad-request


【解决方案1】:

您的解决方案可以正常工作,但更清晰的方法是使用 HttpStatusCodeResult 类,如下所示:

return new HttpStatusCodeResult(HttpStatusCode.BadRequest);

【讨论】:

  • 无需将状态码转换为 int。只需返回 new HttpStatusCodeResult(HttpStatusCode.BadRequest);
  • 此解决方案与作者的代码不等效。默认情况下,HttpStatusCodeResult 导致 IIS 返回带有错误描述的默认 HTML 错误页面,但不是空内容。
  • @dlxeon :要获得空结果,我们可以使用 NoContent Status 代替 BadRequest。然后它应该看起来像这样。 HttpStatusCodeResult(HttpStatusCode.NoContent);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-08
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 2012-07-09
  • 2014-06-14
  • 1970-01-01
相关资源
最近更新 更多