Her*_*der 51 .net c# asp.net-mvc-3
我们在前端使用OpenWeb js库,当发生某些类型的错误时,他们需要.NET中间层向他们发送特定的HTTP头状态代码.我试图通过这样做来实现这一点:
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);
}
Run Code Online (Sandbox Code Playgroud)
它有点中途了.请参见屏幕截图: http状态代码http://zerogravpro.com/temp/pic.png
注意我在响应头中获得了400的状态代码,但我确实需要请求头中的400.相反,我得到"200 OK".我怎样才能做到这一点?
我进行调用的URL结构很简单:/ Main/TestError/400
Ste*_*tty 96
有一个扩展的讨论在什么是从ASP.NET MVC动作发送HTTP 404响应的正确方法?
您想要做的是设置Response.StatusCode而不是添加标题.
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);
}
Run Code Online (Sandbox Code Playgroud)
Nic*_*nes 61
如果要返回的只是错误代码,则可以执行以下操作:
public ActionResult TestError(string id) // id = error code
{
return new HttpStatusCodeResult(id, "You broke the Internet!");
}
Run Code Online (Sandbox Code Playgroud)
参考:关于Mvc.HttpStatusCodeResult的MSDN文章.
否则,如果要返回其他信息使用
Response.StatusCode = id
Run Code Online (Sandbox Code Playgroud)
代替
Response.AddHeader("Status Code", id);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
83199 次 |
| 最近记录: |