如何实现HttpNotFound以及如何为其他错误创建类似的方法?

时间:2013-01-09 01:05:09

标签: c# asp.net-mvc asp.net-mvc-4

在ASP.NET MVC中,Controller类只有一组有限的方法可用于从操作中返回内容。

HttpNotFoundResult HttpNotFound()方法,但没有其他错误方法。

HttpNotFound()里面到底是什么?如何为其他错误代码编写类似的方法,例如401 Unauthorized403 Forbidden406 Not Acceptable

1 个答案:

答案 0 :(得分:2)

以这种方式实现:

public class HttpNotFoundResult : HttpStatusCodeResult
{
    public HttpNotFoundResult() : this(null)
    {
    }

    public HttpNotFoundResult(string statusDescription) : 
           base(HttpStatusCode.NotFound, statusDescription)
    {
    }
}

执行后,HttpStatusCodeResult只会将状态代码和状态说明设置为context.HttpContext.Response。您可以从HttpStatusCodeResult类继承并创建自己的结果。 E.g。

public class HttpUnauthorizedResult : HttpStatusCodeResult
{
    public HttpUnauthorizedResult() : this(null)
    {
    }

    public HttpUnauthorizedResult(string statusDescription) : 
           base(HttpStatusCode.Unauthorized, statusDescription)
    {
    }
}