我遇到了一些问题,SiteMapResolve 在某些页面上触发,但在其他页面上不触发。
这是我的代码。
protected void Page_Load(object sender, EventArgs e)
{
SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(this.ChangeMapPath);
}
private SiteMapNode ChangeMapPath(Object sender, SiteMapResolveEventArgs e)
{
if (SiteMap.CurrentNode != null)
{
// Clone the current node and all of its relevant parents.
SiteMapNode currentNode = SiteMap.CurrentNode.Clone(true);
SiteMapNode tempNode = currentNode;
if (clientId != 0 && tempNode.Title.Equals("Client Notes"))
{
tempNode.Url = tempNode.Url + EncryptQueryString("ParentId=" + clientId.ToString());
}
if (clientId != 0 && tempNode.ParentNode != null && (tempNode.ParentNode.Title.Equals("Client Contacts")))
{
tempNode.ParentNode.Url = tempNode.ParentNode.Url + EncryptQueryString("ParentId=" + clientId.ToString());
}
else if (tempNode.ParentNode != null)
tempNode.ParentNode.Url = tempNode.ParentNode.Url;
return currentNode;
}
return null;
}
谢谢。
最佳答案
尝试替换您的代码
SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(this.ChangeMapPath);
至
foreach (SiteMapProvider mapProvider in SiteMap.Providers)
{
mapProvider.SiteMapResolve += ChangeMapPath;
}
关于asp.net - SiteMapResolve 不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6954924/