嗨,你能建议任何解决方案吗?我有一个 SiteMapPath 控件,而不是像这样的默认功能
Home > Accounts > User Account
其中“用户帐户”是指 ~/UserAccount.aspx
我想覆盖最后一个节点以显示有关当前用户的信息,即:
Home > Accounts > John White
而“John White”指的是 ~/UserAccount.aspx?id=111 ?
嗨,你能建议任何解决方案吗?我有一个 SiteMapPath 控件,而不是像这样的默认功能
Home > Accounts > User Account
其中“用户帐户”是指 ~/UserAccount.aspx
我想覆盖最后一个节点以显示有关当前用户的信息,即:
Home > Accounts > John White
而“John White”指的是 ~/UserAccount.aspx?id=111 ?
是的,你必须继承XmlSiteMapProvider
并覆盖它的BuildSiteMap
方法。在这里,您可以在运行时操作您想要的任何节点,然后这些节点将显示在您的SiteMapPath
控件中。
public class MySiteMapProvider : XmlSiteMapProvider
{
...
public override SiteMapNode BuildSiteMap()
{
var node = base.BuildSiteMap();
var userAccountsNode = this.FindUserAccountsNode(node);
userAccountsNode.ReadOnly = false;
userAccountsNode.Title = ...;
userAccountsNode.Url = ...;
userAccountsNode.ReadOnly = true;
return node;
}
}