2014-03-02 81 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應該直接反映現狀,並且將需要較少的部分代碼更改(儘管我認爲我們不太可能在近期看到這種突破性變化)。

相關問題