HtttpStatusCodeResult的主要用途是让ASP.NET MVC回传特定的HTTP状态代码与消息给客户端。对于一些特殊的HTTP响应,可利用HtttpStatusCodeResult帮助我们响应应当的状态代码。
HTTP状态代码是从服务器端响应(HTTP Response)的状态并大致分成五种。
.1xx:参考信息(Informational)。
.2xx:成功(OK),一般最常见的HTTP状态代码如200代表OK,也就是网页正常响应的意思,201代表Created服务器端已经成功创建资源。
.3xx:重新导向(Redirection),刚刚看过的302代表Found,意即查找这个资源,但暂时移动另一个URL,而301则代表Moved Permanently,意即URL已经发生永久改变,客户端必须转向导另一个URL,且不用保留原来URL的记录。
.4xx:客户端错误(Client Error),这里最常见的就是404 Not Found,代表找不到网页,还有401 Unauthorized,代表拒绝访问,也都是常见的客户端错误。
.5xx:服务器错误(Server Error),当服务器发生错误时会响应5xx的状态代码,而500 Internal Server Error 属内部服务器错误,也是常见的HTTP状态代码。
如果想要响应201 Created状态代码,可以参考以下演示:
[HttpPost]
public ActionResult Create(FormCollection form)
{
//TODO:依据客户端窗体输入的数据在数据库中创建一条新纪录
return new HttpStatusCodeResult(201,"数据已被成功创建");
}
以下演示与上面这个演示程序运行的结果相同,但笔者建议可以使用以下这个演示来撰写自定义的HTTP状态代码响应,以免设置了一个非标准的HTTP状态代码,如下演示:
[HttpPost]
public ActionResult Create(FormCollection form)
{
//TODO:依据客户端窗体输入的数据在数据库中创建一条新纪录
return new HttpStatusCodeResult(System.Net.HttpStatusCode.Created,"数据已被成功创建");
}