无法动态修改SiteMapNode节点属性

jstzcl007 2015-03-10 03:56:19
用siteMapPath做导航,Web.siteMap文件如下:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="~/default.aspx" title="首页" description="首页">
<siteMapNode url="~/article.aspx?plate=1" title="时尚经典" description="时尚经典">
<siteMapNode url="" title="" description=""/>
</siteMapNode>
<siteMapNode url="~/article.aspx?plate=2" title="政经评论" description="政经评论">
<siteMapNode url="" title="" description=""/>
</siteMapNode>
<siteMapNode url="~/article.aspx?plate=4" title="生活常识" description="生活常识">
<siteMapNode url="" title="" description=""/>
</siteMapNode>
<siteMapNode url="~/photo.aspx" title="我的照片" description="我的照片">
<siteMapNode url="~/photoview.aspx" title="" description=""/>
</siteMapNode>
</siteMapNode>
</siteMap>
这里有如<siteMapNode url="" title="" description=""/>这样的句子,这是要在后台编程动态修改的。
在母版页里加入siteMapPath控件,代码就简略贴上吧:
</div>
<div>
当前位置:<asp:SiteMapPath ID="SiteMapPath1" runat="server">
</asp:SiteMapPath>
</div>
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
在内容页里动态修改
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
return;
SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(this.ModifyPath);
}

private SiteMapNode ModifyPath(object sender, SiteMapResolveEventArgs e)
{
SiteMapNode currentNode = SiteMap.CurrentNode.Clone(false);
currentNode.Url = "~/content.aspx?id=" + str_id;
currentNode.Title = Session["articletitle"].ToString();
return currentNode;
}
打开第一层(首页)、第二层页面导航正常,但打开第三层页面时提示SiteMapNode currentNode = SiteMap.CurrentNode.Clone(false)找不到未命名实例,而且刷新第一层、第二层页面后,第一层、第二层页面的导航也消失了,这是怎么回事?
...全文
160 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jstzcl007 2015-03-11
  • 打赏
  • 举报
回复
会不会是母版页和内容页的原因?
Justin-Liu 2015-03-10
  • 打赏
  • 举报
回复
报错了吧,调试一下

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧