在MVC中初始化视图基类的数据?

时间:2014-02-03 21:40:24

标签: asp.net-mvc asp.net-mvc-4

我为MVC视图创建了一个新的基类,并创建了一个必须从DB中弹出的属性。此属性对我的所有视图都很有用,但我不希望基本视图类连接到数据库,因为我不认为这是正确的。初始化视图数据的正确位置在哪里?

2 个答案:

答案 0 :(得分:0)

如果它是单个属性,为什么不在应用程序中将其定义为TempData?与ViewBag或ViewData不同,TempData将在您从控制器移动到控制器时保持不变。而是仅在TempData值不存在时才在基类中设置TempData的值。如果是,则不要调用数据库。

答案 1 :(得分:0)

创建一个Base Controller,将由所有其他控制器继承。在基本控制器中,您将获得用户的配置文件数据并填充会话变量或将其存储在Cache object中。然后在视图中使用会话或缓存变量(通过基本控制器中的ViewBag属性)。如果您的会话或缓存过期,则基本控制器将执行空检查并再次重新填充它们。