0
我目前在使用Menu web控件的網站中添加功能。ASP.NET菜單緩存?
在網站內部有不同的角色需要根據角色出現不同的導航選項集,爲了完成這個任務,我在Page_Load中調用了母版頁後面的代碼中添加了一個函數,將文件名(站點地圖)作爲參數,並將html中的菜單綁定到此源。
我的問題是,當我導航到一個不存在的頁面,然後返回菜單不再出現。
有人可以給我任何關於這個問題的信息,比如爲什麼會發生這種情況並解決它,這個問題似乎也只發生在IE9以外的Firefox,Opera和Chrome上。
我的當前代碼如下。
Menu menu = new Menu();
menu.Orientation = Orientation.Horizontal;
menu.StaticDisplayLevels = 2;
menu.MaximumDynamicDisplayLevels = 3;
menu.CssClass = "menu";
menu.EnableViewState = false;
//configure xmldatasource
XmlDataSource xmlDS = GetSiteMapDataSource(navigationPath);
xmlDS.XPath = "/*/*";
xmlDS.EnableCaching = false;
//configure menuitembinding
MenuItemBinding mib = new MenuItemBinding();
mib.DataMember = "siteMapNode";
mib.TextField = "title";
mib.NavigateUrlField = "url";
mib.ValueField = "title";
//configure datasource
menu.DataSource = xmlDS;
menu.DataBindings.Add(mib);
menu.DataBind();
//add to panel
NavigationPanel.Controls.Add(menu);
這是我的代碼,目前不包括CSS相關的信息,我目前有在使用的SiteMapDataSource相對於的XmlDataSource,因爲我相信我可能可以使用以下信息從我的Web配置文件來一展身手選擇數據源。
<siteMap defaultProvider="guest">
<providers>
<add name="guest" type="System.Web.XmlSiteMapProvider" siteMapFile="~/App_Data/Guest.sitemap"/>
<add name="professional" type="System.Web.XmlSiteMapProvider" siteMapFile="~/App_Data/Professional.sitemap"/>
<add name="supplier" type="System.Web.XmlSiteMapProvider" siteMapFile="~/App_Data/Supplier.sitemap"/>
</providers>
</siteMap>
感謝,
裏克。
發佈菜單標記和MasterPage邏輯。 – Icarus
嗨lcarus,代碼已被添加到問題上。 – RJF