Asp.net mvc 在MVC4ASP.NETRazor中只加载一次布局页面

Asp.net mvc 在MVC4ASP.NETRazor中只加载一次布局页面,asp.net-mvc,razor,asp.net-mvc-4,Asp.net Mvc,Razor,Asp.net Mvc 4,嗨,我有mvc网站,我在那里使用一致的外观和感觉布局。现在,我的菜单是根据用户角色、级别等动态生成的。我已将菜单放在布局页面上。当用户从数据库登录根据其角色生成的菜单时。当用户单击菜单时,它将加载布局中当前的绑定视图,但它也会刷新布局页面,因为所有视图都有布局,因此,菜单也可以通过数据库访问重新生成。如何避免重新加载菜单?我不想使用ajax加载布局页面中的视图,因为“后退”按钮不起作用,而“新建”选项卡加载没有布局的页面。请帮助会话变量的一个常见用途是存储用户及其角色、级别等。这可能会或可能不会

嗨,我有mvc网站,我在那里使用一致的外观和感觉布局。现在,我的菜单是根据用户角色、级别等动态生成的。我已将菜单放在布局页面上。当用户从数据库登录根据其角色生成的菜单时。当用户单击菜单时,它将加载布局中当前的绑定视图,但它也会刷新布局页面,因为所有视图都有布局,因此,菜单也可以通过数据库访问重新生成。如何避免重新加载菜单?我不想使用ajax加载布局页面中的视图,因为“后退”按钮不起作用,而“新建”选项卡加载没有布局的页面。请帮助

会话变量的一个常见用途是存储用户及其角色、级别等。这可能会或可能不会避免数据库往返,具体取决于存储会话的位置。例如,“InProc”会话状态(默认)存储在内存中,因此访问速度非常快)。请参阅:

我所做的是使用ajax将没有布局的页面放置在div内部布局中 在viewstart.chtml中 笔迹

Layout=Request.IsAjaxRequest()?null:“~/Views/Shared/_Layout.cshtml”

所以,当请求通过链接(在新窗口中)时,视图将与布局页面一起出现(这解决了新选项卡的问题)


2) 对于浏览器的backbutton,使用jquery.address插件。

我想你不会明白问题所在。这不是关于用户角色级别等,而是关于避免在每个菜单vie页面上重新加载布局页面,以避免每次重新加载动态生成的菜单。这绝对不是关于会话存储!!!!有数据库功能为我提供存储在数据库中的用户特定菜单项,用户角色级别映射我搜索了3个多小时,对于这一行代码!非常感谢阿莫尔。