我已经按照本教程中的描述实现了 SiteMap Security Trimming:ASP.NET Menu and SiteMap Security Trimming
菜单按预期工作。我想更进一步,将用户重定向到生成的修剪菜单中的第一个节点。每个用户的菜单会根据他们的角色而有所不同,因此重定向 URL 需要从菜单本身或站点地图文件中派生。
关于如何做到这一点的任何建议?
我已经按照本教程中的描述实现了 SiteMap Security Trimming:ASP.NET Menu and SiteMap Security Trimming
菜单按预期工作。我想更进一步,将用户重定向到生成的修剪菜单中的第一个节点。每个用户的菜单会根据他们的角色而有所不同,因此重定向 URL 需要从菜单本身或站点地图文件中派生。
关于如何做到这一点的任何建议?
我似乎已经找到了一个选项,至少:我为 MenuItemDataBound 创建了一个事件处理程序,并根据绑定到菜单的第一个项目的 Url 进行重定向,如下所示:
在 aspx 上,设置菜单的OnMenuItemDataBound="Menu1_MenuItemDataBound"
然后在代码隐藏中创建以下方法:
protected void Menu1_MenuItemDataBound(object sender, MenuEventArgs e)
{
string Url = ((SiteMapNode)e.Item.DataItem).Url;
Response.Redirect(Url);
}
似乎按预期工作。如果您有更好的解决方案,请告诉我。