我为MVC视图创建了一个新的基类,并创建了一个必须从DB中弹出的属性。此属性对我的所有视图都很有用,但我不希望基本视图类连接到数据库,因为我不认为这是正确的。初始化视图数据的正确位置在哪里?
答案 0 :(得分:0)
如果它是单个属性,为什么不在应用程序中将其定义为TempData?与ViewBag或ViewData不同,TempData将在您从控制器移动到控制器时保持不变。而是仅在TempData值不存在时才在基类中设置TempData的值。如果是,则不要调用数据库。
答案 1 :(得分:0)
创建一个Base Controller,将由所有其他控制器继承。在基本控制器中,您将获得用户的配置文件数据并填充会话变量或将其存储在Cache object中。然后在视图中使用会话或缓存变量(通过基本控制器中的ViewBag属性)。如果您的会话或缓存过期,则基本控制器将执行空检查并再次重新填充它们。