的Controller
类的Request
和Response
性能真的只是返回HttpContext.Request
和HttpContext.Response
。两者没有区别。 Controller
属性的存在实际上是为了简洁而避免使用HttpContext.Request
/HttpContext.Result
。
你可以看到它在source code:
public abstract class Controller
{
// ...
public HttpRequestBase Request
{
get { return HttpContext == null ? null : HttpContext.Request; }
}
public HttpResponseBase Response
{
get { return HttpContext == null ? null : HttpContext.Response; }
}
// ...
}
你应该,但是,使用Controller
特性,其直接关系到MVC,而不是对System.Web.dll堆栈。如果在将来,MVC框架在请求/响应对象模型方面发生了变化,使得对System.Web和HttpContext
类的依赖关系被删除,Controller
本身的Request
和Response
应该直接反映现状,并且将需要较少的部分代码更改(尽管我认为我们不太可能在近期看到这种突破性变化)。