Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 此.Response与此.HttpContext.Response之间的MVC控制器差异_C#_Asp.net Mvc_Dotnet Httpclient - Fatal编程技术网

C# 此.Response与此.HttpContext.Response之间的MVC控制器差异

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

MVC控制器有许多对象,它们也存在于HttpContext子对象中。这些对象之间有什么区别

        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; }
    }

    // ...

}