2

嗨,我有 mvc 网站,我在其中使用布局以获得一致的外观和感觉。现在我的菜单是根据用户角色、级别等动态生成的。我已将菜单放在布局页面上。当用户登录时根据其从数据库中的角色生成菜单。当用户单击菜单时,它会在布局中加载相应的视图,但它还刷新布局页面,因为所有视图都有布局,所以菜单也会重新生成 cousing 数据库之旅。我应该如何避免重新加载菜单?我不想使用 ajax 在布局页面中加载视图,因为后退按钮不起作用并且新选项卡加载没有布局的页面。请帮忙

4

2 回答 2

1

我所做的是使用 ajax.and 在 vi​​ewstart.chtml 中使用 ajax.and 在 vi​​ewstart.chtml 中写入没有布局的页面

布局 = Request.IsAjaxRequest() ?null : "~/Views/Shared/_Layout.cshtml";

因此,当请求通过链接(在新窗口中)时,布局页面将附带视图(这解决了新标签问题)。

2) 对于浏览器的后退按钮,使用 jquery.address 插件。

于 2013-03-26T08:41:24.600 回答
0

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

于 2013-03-22T17:13:54.650 回答