почему действие контроллеров имеет HttpRequestBase, а на странице просмотра - HttpRequest? - PullRequest
8 голосов
/ 02 февраля 2010

Мои методы принимают HttpRequestBase в качестве аргументов, и я нахожу странным, почему действия в контроллерах имеют доступ к HttpRequestBase, а страницы просмотра имеют HttpRequest.

Есть причина для этого или просто что-то, что не было продумано?

Ответы [ 2 ]

5 голосов
/ 02 февраля 2010

Просмотр страниц имеет доступ к MVC HttpContext через ViewContext.HttpContext, который является HttpContextBase.

Казалось бы, двойной доступ обусловлен тем, как работает ASP.Net. Когда вы смотрите на Request.HttpContext, это конвейер ASP.Net, вводящий исходный HttpContext. Это доступно в любом HttpHandler, будь то контроллер MVC или представление, или страница WebForms или Ashx.

2 голосов
/ 02 февраля 2010

ViewPage наследуется от System.Web.UI.Page, и я уверен, что все члены HttpRequest унаследованы от этого:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...