1

最近 Web サイトを ASP.NET 4.0 にアップグレードし、コードをステージング サーバーに移動した後、mysite.com/bacon/ などのページ ディレクトリを参照するたびに、SiteMap.CurrentNode が null になります。ただし、mysite.com/bacon/default.aspx を参照すると、正常に動作します。サーバーとサイトは 4.0 用に構成され、ドキュメントの既定値は default.aspx に設定されています。

mysite.com/bacon/ が実際には mysite.com/bacon/default.aspx であり、それに応じて SiteMap.CurrentNode が設定されていることが認識されます。

4

2 に答える 2

2

SiteMapプロバイダーがHttpContext.Request.rawUrlを使用していたことがわかりました。何らかの理由で、.Net 2.0から4.0への変更でrawurlはデフォルトのドキュメントを返さなくなるため、代わりにHttpContext.Request.Pathを使用しました。

于 2012-07-24T16:40:55.430 に答える
0

Web.sitemap ノードの URL を確認し (そのようなファイルを使用している場合)、URL の末尾に「/」を追加することを忘れないでください。たとえば、これはエラーを生成します。

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

しかし、これは正しいです:

<siteMapNode title="bacon" url="mysite.com/bacon/" description="" >
于 2014-07-26T09:51:10.063 に答える