1

我最近将一个网站升级到 ASP.NET 4.0,在将代码移动到临时服务器后,每次我浏览到类似 mysite.com/bacon/ 的页面目录时,SiteMap.CurrentNode 都是空的。但是,如果我浏览 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 回答