以下是一个示例解决方案,演示了如何在ASP.NET MVC中加载侧边导航一次。
首先,创建一个名为"NavigationService.cs"的新类,用于处理导航菜单的加载和缓存。在该类中,我们可以使用静态变量来缓存导航菜单的数据。
public static class NavigationService
{
private static List _navigationMenu;
public static List GetNavigationMenu()
{
if (_navigationMenu == null)
{
// 加载导航菜单数据
_navigationMenu = LoadNavigationMenu();
}
return _navigationMenu;
}
private static List LoadNavigationMenu()
{
// 在此处加载导航菜单数据,可以从数据库或配置文件中读取
var navigationMenu = new List
{
new NavItem { Name = "Home", Url = "/" },
new NavItem { Name = "About", Url = "/About" },
new NavItem { Name = "Contact", Url = "/Contact" }
};
return navigationMenu;
}
}
然后,在视图中使用NavigationService.GetNavigationMenu()
方法来获取导航菜单数据,并渲染侧边导航菜单。
@{
var navigationMenu = NavigationService.GetNavigationMenu();
}
通过这种方式,导航菜单数据只会在第一次加载时从数据源中获取,以后的请求将直接使用缓存的数据,减少了数据库或文件系统的访问次数,提高了性能。