2012-07-24 41 views
1

我最近將網站升級到ASP.NET 4.0,並且在將代碼移動到登臺服務器後,每次瀏覽到像mysite.com/bacon/這樣的網頁目錄時SiteMap.CurrentNode爲null。但是,如果我瀏覽mysite.com/bacon/default.aspx它工作正常。服務器和站點配置爲4.0,文檔默認設置爲default.aspx是默認的第一個頁面。爲什麼SiteMap.CurrentNode在升級到4.0之後返回null

我還應該提到這種行爲沒有發生在我的本地開發機器上,它認識到mysite.com/bacon/確實是mysite.com/bacon/default.aspx,並且SiteMap.CurrentNode被相應地設置。

回答

2

原來,SiteMap提供程序正在使用HttpContext.Request.rawUrl。 由於某些原因,從.Net 2.0更改爲4.0 rawurl不再會返回您的默認文檔,因此改用HttpContext.Request.Path。

+0

*** *** HttpContext.Current.Request.Path – Kiquenet 2015-07-27 10:32:08

0

檢查您的Web.sitemap節點的URL(如果您使用此文件!),並且不要忘記在URL末尾添加「/」。例如,這將產生錯誤:

<siteMapNode title="bacon" url="mysite.com/bacon" description="" > 

但這是正確的:

<siteMapNode title="bacon" url="mysite.com/bacon/" description="" > 
相關問題