对一MVC来说,它有Controller和Action,其中Action用来为页面提供数据和相关逻辑,并最后将页面渲染出来,而有些action是需要一些参数的,如文章的最终页,可能需要一个ID,而这个ID通常是和某个链接集成在一起的,不需要浏览者手动在URL上改,而有些被称为无聊的用户或者马虎的程序员就把ID参数忽略了,这时,我们的action一般是直接抛出Exception,而这对于一个页面来说,并不是很优雅,对于一个WEB请求,应该返回一个HttpStatusCodeResult的状态结果,这个对象在WebApi中使用的比较频繁.
HttpStatusCodeResult对象结构如下
// 摘要: // 提供一种用于返回带特定 HTTP 响应状态代码和说明的操作结果的方法。 public class HttpStatusCodeResult : ActionResult { // 摘要: // 使用状态代码初始化 System.Web.Mvc.HttpStatusCodeResult 类的新实例。 // // 参数: // statusCode: // 状态代码。 public HttpStatusCodeResult(HttpStatusCode statusCode); // // 摘要: // 使用状态代码初始化 System.Web.Mvc.HttpStatusCodeResult 类的新实例。 // // 参数: // statusCode: // 状态代码。 public HttpStatusCodeResult(int statusCode); // // 摘要: // 使用状态代码和状态说明初始化 System.Web.Mvc.HttpStatusCodeResult 类的新实例。 // // 参数: // statusCode: // 状态代码。 // // statusDescription: // 状态说明。 public HttpStatusCodeResult(HttpStatusCode statusCode, string statusDescription); // // 摘要: // 使用状态代码和状态说明初始化 System.Web.Mvc.HttpStatusCodeResult 类的新实例。 // // 参数: // statusCode: // 状态代码。 // // statusDescription: // 状态说明。 public HttpStatusCodeResult(int statusCode, string statusDescription); // 摘要: // 获取 HTTP 状态代码。 // // 返回结果: // HTTP 状态代码。 public int StatusCode { get; } // // 摘要: // 获取 HTTP 状态说明。 // // 返回结果: // HTTP 状态说明。 public string StatusDescription { get; } // 摘要: // 通过从 System.Web.Mvc.ActionResult 类继承的自定义类型,启用对操作方法结果的处理。 // // 参数: // context: // 用于执行结果的上下文。上下文信息包括控制器、HTTP 内容、请求上下文和路由数据。 public override void ExecuteResult(ControllerContext context); }