Мои методы берут HttpRequestBase в качестве arguements, и я нахожу это странным относительно того, почему Действия в Контроллерах имеют доступ к HttpRequestBase, но страница представления имеет HttpRequest.
Существует ли причина этого или просто чего-то, что не было продумано?
Страницы представления имеют доступ к MVC HttpContext через ViewContext.HttpContext
, который является HttpContextBase
.
Кажущийся двойной доступ обусловлен тем, как работает ASP.Net. Если вы посмотрите на Request.HttpContext
, это инъекция исходного HttpContext
в конвейере ASP.Net. Он доступен в любом HttpHandler, будь то контроллер MVC или представление, или страница WebForms или ashx.
ViewPage наследуется от System.Web.UI.Page и я уверен, что все члены HttpRequest наследуются от него: