2012-10-08 24 views
1
我使用從以下站點地圖生成.NET Web表單菜單控制

空:.NET菜單控件的SelectedItem總是在主頁上

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > 
    <siteMapNode url="" title="NavigationWrapper" description=""> 
     <siteMapNode url="/" title="Home" description="" /> 
     <siteMapNode url="/search" title="Search" description="" /> 
     <siteMapNode url="/contact" title="Contact" description="" />  
    </siteMapNode> 
</siteMap> 

當我點擊主頁鏈接,菜單控制的SelectedItem屬性始終是null,但在單擊其他兩個鏈接時工作正常。我似乎無法弄清楚爲什麼!

我似乎可以解決這個問題的唯一方法是爲我的主頁創建一個www.abc.com/home鏈接,但我不希望這樣做。

任何幫助非常感謝!

編輯:

路由集合如下:

 routes.MapPageRoute("Home", "", "~/Default.aspx"); 
     routes.MapPageRoute("Search", "search", "~/SearchByMap.aspx"); 
     routes.MapPageRoute("contact", "contact", "~/Contact.aspx"); 

回答

0

試試這個:

<siteMapNode url="~/" title="Home" description=""> 
     <siteMapNode url="/search" title="Search" description="" /> 
     <siteMapNode url="/contact" title="Contact" description="" />  
</siteMapNode> 

添加到您的路由集合:

public static void RegisterRoutes(RouteCollection routeCollection) 
{ 
    routeCollection.MapPageRoute("Home", "", "~/Default.aspx"); 
} 
+0

這將工作,但之後我必須擁有www.abc.c om/home作爲我的主頁,我並不想這麼做。 – user1624668

+0

如果你這樣做會發生什麼:'url =「〜」'或甚至'url =「〜/」'? –

+0

這些都沒有改變。如果我將它設置爲url =「Default.aspx」,那麼它就可以工作,但是鏈接直接轉到www.domain.com/Default.aspx,而不是www.domain.com – user1624668