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