为什么控制器动作有HttpRequestBase,而viewpage有HttpRequest?

时间:2010-02-01 21:01:27

标签: c# asp.net asp.net-mvc

我的方法将HttpRequestBase作为争论,我发现为什么控制器中的Actions可以访问HttpRequestBase但视图页面有HttpRequest。

是否有理由这样或只是没有考虑过的事情?

2 个答案:

答案 0 :(得分:5)

查看页面可以通过ViewContext.HttpContext访问MVC HttpContext,这是一个HttpContextBase

看似双重访问只是由于ASP.Net的工作方式。当你查看Request.HttpContext时,这是ASP.Net管道注入原始HttpContext。这可以在任何HttpHandler中访问,无论是MVC控制器或视图,还是WebForms页面或ashx。

答案 1 :(得分:2)

ViewPage继承自System.Web.UI.Page,我非常肯定所有的HttpRequest成员都继承自:

http://msdn.microsoft.com/en-us/library/dd504962.aspx