我有一个独特的场景,我希望基础控制器可以获取一些数据并将其存储在列表中。这个列表应该可以像ViewData一样从我的视图中访问。我将在每个页面上使用这个列表,并希望得到一个更清晰的解决方案,而不仅仅是将它放在ViewDataDictionary中。ASP.NET MVC从控制器传递信息,无需ViewData,ViewModel或Session
试图想出一个解决方案后,我想我会创建一个自定义ViewPage与属性来保存我的列表。我的自定义ViewPage将从System.Web.MVC.ViewPage继承。但是,我不知道MVC将视图数据从控制器传递到视图的位置。更重要的是,我如何才能将我的列表传递给视图?
感谢您的帮助。
编辑....
对不起。我试图尽可能简化问题以避免混淆。显然,这没有工作:)
我在.net mvc项目中实现我自己的会话管理。当请求进入时,我的基础控制器会检查会话cookie是否与OnActionExecuting方法中的请求一起发送。如果发送了会话cookie,我的控制器就会访问数据库并检索用户的会话信息。会话信息(用户标识等)被放入List对象并存储在名为“Sess”的属性中。
我希望能够从我的意见访问的SESS列表中的元素是这样的:
那么,如何以及在哪里让我的控制器,随手关SESS列表我的意见?
我意识到这不是通常在.net中实现自定义会话管理的方式。但是,这将是我的项目最简单,最干净的解决方案。
感谢迄今为止帮助过的所有人!
这是RenderAction可能更适合这项工作的场景之一。如果有需要在每个页面上呈现的数据(如菜单),RenderAction使这更容易。这基本上只是一个简单的方法来贯穿整个生命周期,因此您可以分享您的应用程序中的零食部分(菜单,广告,小部件) – Jab 2010-04-05 15:34:49
我同意Jab,如果需要一些动态数据,请使用RenderAction如果你只想渲染一个ASCX(如果你愿意的话,你也可以选择提供一个Model到RenderPartial) – mare 2010-04-05 17:44:25