【发布时间】:2012-03-02 19:30:59
【问题描述】:
我根据用户的权限和分配的模块创建了动态菜单,其中有循环和 if - else 语句。 此菜单创建在包含在所有页面中的 Header.ascx 中。
因此,菜单创建逻辑会在每次页面加载时执行。我想避免在每个页面上执行此操作。
任何改进我的实施的好建议。
注意:菜单是用户特定的。
【问题讨论】:
标签: c# asp.net c#-4.0 asp.net-4.0
我根据用户的权限和分配的模块创建了动态菜单,其中有循环和 if - else 语句。 此菜单创建在包含在所有页面中的 Header.ascx 中。
因此,菜单创建逻辑会在每次页面加载时执行。我想避免在每个页面上执行此操作。
任何改进我的实施的好建议。
注意:菜单是用户特定的。
【问题讨论】:
标签: c# asp.net c#-4.0 asp.net-4.0
如果代码已经在用户控件中,您可以使用 ASP.NET 用户控件缓存:
http://msdn.microsoft.com/en-us/library/hdxfb6cy.aspx(链接不再有效)
http://msdn.microsoft.com/en-us/library/h30h475z(v=vs.100).aspx(更新链接)
【讨论】:
为什么不将生成的菜单存储在会话中,并且仅在会话值不存在时才构建菜单?这会增加应用程序的内存消耗,但会提高运行时性能。
【讨论】:
在我们的一些应用程序中,我们使用:
这取决于您获取数据的方式以及这些数据的大小。
【讨论】: