0

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

有一种HttpNotFoundResult HttpNotFound()方法,但没有其他方法可以解决错误。

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

4

1 回答 1

2

它是这样实现的:

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

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

执行时,HttpStatusCodeResult只是将状态代码和状态描述设置为context.HttpContext.Response. 您可以从HttpStatusCodeResult类继承并创建自己的结果。例如

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

    public HttpUnauthorizedResult(string statusDescription) : 
           base(HttpStatusCode.Unauthorized, statusDescription)
    {
    }
}
于 2013-01-09T01:09:52.180 回答