C# 此.Response与此.HttpContext.Response之间的MVC控制器差异
MVC控制器有许多对象,它们也存在于HttpContext子对象中。这些对象之间有什么区别C# 此.Response与此.HttpContext.Response之间的MVC控制器差异,c#,asp.net-mvc,dotnet-httpclient,C#,Asp.net Mvc,Dotnet Httpclient,MVC控制器有许多对象,它们也存在于HttpContext子对象中。这些对象之间有什么区别 var res = HttpContext.Response; var res1 = Response; var req = HttpContext.Request; var req1 = Request; Controller类的Request和Response属性实际上只是返回HttpContext.Request和HttpConte
var res = HttpContext.Response;
var res1 = Response;
var req = HttpContext.Request;
var req1 = Request;
Controller
类的Request
和Response
属性实际上只是返回HttpContext.Request
和HttpContext.Response
。两者没有区别。存在控制器
属性实际上是为了简洁,以避免使用HttpContext.Request
/HttpContext.Result
您可以在以下页面中看到:
但是,您应该使用
控制器
属性,因为它们与MVC直接相关,而不是System.Web.dll堆栈。如果将来MVC框架中的请求/响应对象模型发生变化,与System.Web和HttpContext
类的依赖关系被删除,那么控制器本身的请求和响应应直接反映实际情况,并且将需要较少的代码更改(即使我认为我们不太可能在不久的将来看到这种突破性的更改)。控制器类的请求和响应属性实际上只是返回HttpContext.Request
和HttpContext.Response
。两者没有区别。存在控制器
属性实际上是为了简洁,以避免使用HttpContext.Request
/HttpContext.Result
您可以在以下页面中看到:
但是,您应该使用控制器
属性,因为它们与MVC直接相关,而不是System.Web.dll堆栈。如果将来MVC框架中的请求/响应对象模型发生变化,与System.Web和HttpContext
类的依赖关系被删除,那么控制器本身的请求和响应应直接反映实际情况,并且将需要更少的代码更改(尽管我认为我们不太可能在不久的将来看到这种突破性的更改)
public abstract class Controller
{
// ...
public HttpRequestBase Request
{
get { return HttpContext == null ? null : HttpContext.Request; }
}
public HttpResponseBase Response
{
get { return HttpContext == null ? null : HttpContext.Response; }
}
// ...
}