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