2014-03-02 39 views

回答

3

Controller类的RequestResponse性能真的只是返回HttpContext.RequestHttpContext.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本身的RequestResponse应该直接反映现状,并且将需要较少的部分代码更改(尽管我认为我们不太可能在近期看到这种突破性变化)。

相关问题