Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 导航从数据库中提取并显示在主布局中_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc 4 导航从数据库中提取并显示在主布局中

Asp.net mvc 4 导航从数据库中提取并显示在主布局中,asp.net-mvc-4,Asp.net Mvc 4,我正在ASP.NETMVC中开发一个web应用程序。当用户登录时,我想从数据库中检索他的导航(用户帐户不同)和他的信息,并在控制器之间保留这些信息 我正在\u Layout.cshtml中显示导航,因此我想知道从数据库中提取导航和其他用户信息并将其存储在控制器之间的最佳实践。此信息仅检索一次,并通过用户“登录会话”存储 理想的解决方案是什么?我是否应该创建一个其他控制器继承的BaseController,并将我的逻辑放入构造函数中,并将信息放入全局视图包?或者我应该在登录方法中使用会话对象吗?或

我正在ASP.NETMVC中开发一个web应用程序。当用户登录时,我想从数据库中检索他的导航(用户帐户不同)和他的信息,并在控制器之间保留这些信息

我正在
\u Layout.cshtml
中显示导航,因此我想知道从数据库中提取导航和其他用户信息并将其存储在控制器之间的最佳实践。此信息仅检索一次,并通过用户“登录会话”存储

理想的解决方案是什么?我是否应该创建一个其他控制器继承的
BaseController
,并将我的逻辑放入构造函数中,并将信息放入
全局视图包
?或者我应该在
登录
方法中使用
会话
对象吗?或者我应该创建一个静态方法并直接从_Layout.cshtml调用它


我该怎么办?我想在全局范围内执行一次,因此我不必在每个控制器操作中执行此操作。

是的,我认为您的方式是正确的。我在这里贴了一个和你的想法一样的答案:。也许它能帮助我完全理解我的想法。然后创建一个singleton,这样它不会在每次执行操作并使用内存中对象时从DB检索信息。BaseController和singleton没有像我预期的那样工作,因为控制器在整个请求中只有一个生存期,所以对象始终为null并重新创建(从数据库中提取)。这是我能用的东西吗?毫无疑问,您应该在每个请求中调用db方法。如果你想打一次电话,你可以使用会话、Cookie等。