在 ASP.NET MVC 中,Controller
类只有一组有限的方法可用于从操作中返回某些内容。
有一种HttpNotFoundResult HttpNotFound()
方法,但没有其他方法可以解决错误。
里面到底是什么HttpNotFound()
?如何为其他错误代码编写类似的方法,例如401 Unauthorized
or 403 Forbidden
or 406 Not Acceptable
?
在 ASP.NET MVC 中,Controller
类只有一组有限的方法可用于从操作中返回某些内容。
有一种HttpNotFoundResult HttpNotFound()
方法,但没有其他方法可以解决错误。
里面到底是什么HttpNotFound()
?如何为其他错误代码编写类似的方法,例如401 Unauthorized
or 403 Forbidden
or 406 Not Acceptable
?
它是这样实现的:
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)
{
}
}