ASP.NET MVC将信息从控制器传递到没有ViewData,ViewModel或Session的视图
我有一个独特的场景,我希望基本控制器获取一些数据并将其存储在列表中。该列表应该像ViewData一样可以从我的视图中访问。我将在每个页面上使用此列表,并且想要一个更清晰的解决方案,而不仅仅是在ViewDataDictionary中推送它。
在尝试提出解决方案之后,我想我会创建一个带有属性的自定义ViewPage来保存我的列表。我的自定义ViewPage将继承自System.Web.MVC.ViewPage。但是,我不知道MVC将viewdata从控制器传递到视图的位置。更重要的是,如何让它将我的列表传递给视图?
谢谢您的帮助。
编辑....
对困惑感到抱歉。我试图让问题尽可能简单,以避免任何混淆。显然,这不起作用:)
我正在.net mvc项目中实现自己的会话管理。当请求进入时,我的基本控制器检查会话cookie是否与OnActionExecuting方法中的请求一起发送。如果发送了会话cookie,我的控制器将访问数据库并检索用户的会话信息。会话信息(userid等)被放入List对象并存储在名为“Sess”的属性中。
我希望能够从我的视图中访问Sess列表中的元素,如下所示:
那么,我如何以及在哪里让我的控制器将Sess列表移交给我的观点?
我意识到这不是通常在.net中实现自定义会话管理的方式。但是,这对我的项目来说是最简单,最干净的解决方案。
感谢迄今为止帮助过的所有人!
没有找到相关结果
已邀请:
4 个回复
锹缄
您可以做的一件事是拥有自己的自定义视图页面类,该类派生自System.Web.Mvc.ViewPage并更改页面顶部的Inherits声明以指向您的视图页面。
您的自定义视图页面可以包含您需要的任何属性。
澜悍景哭苟
蜗仓馈
咳累录酬
然后,您只需将此属性放在每个Controller或基本控制器中。 编辑: 您可以制作一些扩展方法,例如
然后你添加这样的数据:
在View中,您可以获得如下数据:
问候。