在 MVC 控制器中,Page.Application(在 .aspx.cs 页面中)的等价物是啥
Posted
技术标签:
【中文标题】在 MVC 控制器中,Page.Application(在 .aspx.cs 页面中)的等价物是啥【英文标题】:What is the equivalent of Page.Application (in .aspx.cs page) In MVC Controller在 MVC 控制器中,Page.Application(在 .aspx.cs 页面中)的等价物是什么 【发布时间】:2017-08-29 03:08:30 【问题描述】:我正在开发 MVC Web 应用程序,我正在使用 .Dlls
。的一些其他项目。同样的 .dll 也在我的另一个 Web 应用程序中使用,该应用程序是在 WebForms (.aspx) 页面中创建的。
现在我的问题是: .dll 中的某些函数接受 Page.Application
作为参数。在 .aspx 页面中运行良好。但现在我想在 MVC 应用程序中使用相同的功能。但是在MVC controller
我无法访问Page.Application
所以请有人可以帮助我,我如何在 MVC 控制器中访问 Page.Application
以及在 MVC 控制器中是否有任何等效的 Page.Application
谢谢,
编辑:-
我不是在问Application variable
- 我在问Page.Application
这是HttpApplicationState
的对象。我想要这个 HttpApplicationState
在 MVC 控制器中
【问题讨论】:
您可以从System.Web.HttpContext.Current.Application
访问Application
变量,因为MVC 控制器类不是从System.Web.UI.Page
派生的,不像webforms 类那样。
@TetsuyaYamamoto - 这与 Application variable
无关 - Page.Application
是 HttpApplicationState
的对象。我想要这个 HttpApplicationState
在 MVC 控制器中
ASP.NET MVC 中没有应用程序状态。您在 webform 中使用的 DLL 不适用,您应该使用 viewbag 或 viewdata,因为 MVC 是无状态的,与由 viewstate 管理的 webforms 不同。
您可以在派生HttpApplicationState
类的模型类上创建类似的属性,例如:public static HttpApplicationState Application get return HttpContext.Current.Application;
。请注意,Session
和 ViewBag/ViewData
方法比应用程序变量更受欢迎。
【参考方案1】:
你可以使用:
HttpContext.Application
你必须添加:
using System.Web;
【讨论】:
【参考方案2】:在 mvc 中,没有 webform 中的页面生命周期。每件事都来自路由机制。
在 page.application 中,它获取当前 Web 请求的 HttpApplicationState 对象。
从 MVC3 开始,它支持 mvc 中的 HttpApplicationState 变量。
检查这个答案:
HttpApplicationState not available in an MVC controller
Does asp.net MVC have Application variables?
【讨论】:
完美 - 链接有答案 - HttpApplicationState application = HttpContext.ApplicationInstance.Application以上是关于在 MVC 控制器中,Page.Application(在 .aspx.cs 页面中)的等价物是啥的主要内容,如果未能解决你的问题,请参考以下文章
在 POST 数据中从 Api 控制器重定向到 MVC 控制器