首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在ASP.NET MVC3中设置HTTP状态码?

如何在ASP.NET MVC3中设置HTTP状态码?
EN

Stack Overflow用户
提问于 2012-08-24 23:28:28
回答 3查看 94.1K关注 0票数 54

我们在前端使用HTTP库,当某些类型的错误发生时,它们需要.NET中间层向它们发送特定的header状态代码。我试图通过这样做来实现这个目标:

代码语言:javascript
复制
public ActionResult TestError(string id) // id = error code
{
    Request.Headers.Add("Status Code", id);
    Response.AddHeader("Status Code", id);
    var error = new Error();
    error.ErrorID = 123;
    error.Level = 2;
    error.Message = "You broke the Internet!";

    return Json(error, JsonRequestBehavior.AllowGet);
}

它在某种程度上起了半点作用。查看屏幕截图:http status code http://zerogravpro.com/temp/pic.png

请注意,我在响应头中获得了状态码400,但我确实需要请求头中的400。取而代之的是,我得到了"200 OK“。我如何才能做到这一点?

我进行调用的URL结构很简单: /Main/TestError/400

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-24 23:43:46

What is the proper way to send an HTTP 404 response from an ASP.NET MVC action?上有更广泛的讨论

您要做的是设置Response.StatusCode,而不是添加标头。

代码语言:javascript
复制
public ActionResult TestError(string id) // id = error code
{
    Response.StatusCode = 400; // Replace .AddHeader
    var error = new Error();  // Create class Error() w/ prop
    error.ErrorID = 123;
    error.Level = 2;
    error.Message = "You broke the Internet!";

    return Json(error, JsonRequestBehavior.AllowGet);
}
票数 103
EN

Stack Overflow用户

发布于 2012-08-24 23:39:48

如果您只想返回错误代码,则可以执行以下操作:

代码语言:javascript
复制
public ActionResult TestError(string id) // id = error code 
{ 
      return new HttpStatusCodeResult(id, "You broke the Internet!");
}

参考:MSDN article on Mvc.HttpStatusCodeResult

否则,如果要返回其他信息,请使用

代码语言:javascript
复制
Response.StatusCode = id

而不是

代码语言:javascript
复制
Response.AddHeader("Status Code", id); 
票数 61
EN

Stack Overflow用户

发布于 2018-01-16 16:48:14

如果你不能把你的json结果放到你的视图中,试着添加这个:

代码语言:javascript
复制
Response.TrySkipIisCustomErrors = true;

在此之前:

代码语言:javascript
复制
Response.StatusCode = 400;

关于这篇文章的更多详细信息:https://stackoverflow.com/a/37313866/9223103

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

https://stackoverflow.com/questions/12112361

复制
相关文章

相似问题

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