如何在ASP.NET MVC 2中的每个页面上显示多条用户信息?

时间:2011-01-07 01:00:49

标签: asp.net-mvc asp.net-mvc-2 view viewmodel

我正在ASP.NET MVC 2中构建一个允许匿名用户和注册用户的站点。当用户登录时,我想在每个页面上显示与该配置文件相关的多条信息(即家乡,喜欢的颜色等)。从视角来看,我理解使用母版页并创建局部图来保持干燥。

但是,我遇到的问题是如何将此用户信息传递给每个页面的视图?我已经建立了数据库表之间的关系(我正在使用EF),因此我可以通过ViewData为每个操作单独执行此操作,但这对于网站上的每个页面来说显然都是荒谬的。

到目前为止,我的研究已经开始引领我走上创建其他控制器和视图模型将继承的基本控制器和基本视图模型的道路。但我觉得我错过了一些明显的东西。有什么指针吗?

3 个答案:

答案 0 :(得分:5)

如果您的主页面使用RenderAction方法,它可以为页面的各个重复部分调用控制器操作,每个部分都可以执行数据访问并呈现部分视图。这样,您就可以在显示所有页面上的某些元素的同时分离视图模型。

这种方法对我们很有用。

答案 1 :(得分:0)

我们使用基本控制器将其存储在ViewData中。

您还可以在控制器上使用操作属性,而不是从基本控制器继承。

答案 2 :(得分:0)

您可以为模型创建一个基类,其中包含每页显示的数据。