我已经根据用户的权限和分配的模块创建了具有循环和if-else语句的动态菜单。 此菜单创建在所有页面中包含的Header.ascx中。我应该在哪里放置我的动态菜单创建逻辑以获得良好性能
因此,菜单创建逻辑会在每个页面加载时执行。我想要避免在每个页面上执行此操作。
任何改进我的实施的好建议。
注意:菜单是用户特定的。
我已经根据用户的权限和分配的模块创建了具有循环和if-else语句的动态菜单。 此菜单创建在所有页面中包含的Header.ascx中。我应该在哪里放置我的动态菜单创建逻辑以获得良好性能
因此,菜单创建逻辑会在每个页面加载时执行。我想要避免在每个页面上执行此操作。
任何改进我的实施的好建议。
注意:菜单是用户特定的。
如果代码已经是一个用户控件里面,你可以使用ASP.NET用户控件缓存:
http://msdn.microsoft.com/en-us/library/hdxfb6cy.aspx
(链接不再有效)
http://msdn.microsoft.com/en-us/library/h30h475z(v=vs.100).aspx(更新链接)
为什么不将生成的菜单存储在会话中,并且只在会话值不存在时才生成菜单?这会增加应用程序的内存消耗,但会增加运行时性能。
我想避免使用会话,任何其他解决方案! ,你能告诉我一些创建菜单的其他方法吗?我也想避免循环和if-else条件。 – Kash 2012-03-02 20:06:56
@Kash,如果你不想使用会话,你应该在你的帖子中说过。另外,构建菜单的循环和条件有什么问题?循环和条件语言是所有语言的基本组成部分,他们注意到了错误。发布一些代码,如果你认为可以改进。 – 2012-03-02 20:10:03
在我们的一些应用中,我们使用:
这将取决于您如何获取数据以及此数据有多大。
链接不起作用 – Eonasdan 2012-09-10 19:36:27