我被限制使用SiteMap进行身份验证。我是一位经验丰富的开发人员,以前没有使用过SiteMap,所以由于范式的转变,我可能会遗漏一些东西。
为了解决SiteMap中的网址限制,我< doh!> 巧妙地< / doh!>附加了一个查询字符串值:
< siteMapNode url =“workflow.aspx?Location = Process1”description =“Process1”>
< siteMapNode url =“workflow.aspx?Location = Process2”description =“Process2”>
页面根据查询字符串值动态返回相应的信息/显示,并且我没有多个存根页面。一切顺利,似乎是一个好主意,直到......
管理员现在想要访问该页面并编辑他们的员工工作别名,因此他们需要点击这样的链接:
href = workflow.aspx?Location = Process1& UserID = 12& IDWorkflowLocation = 3340
{更新解释} 它正确到达页面,但
SiteMap.CurrentNode == NULL;
因为站点地图中已存在查询字符串,所以它无法正确追加。我真的不想要创建唯一命名的存根.aspx页面。任何想法?
答案 0 :(得分:2)
试试这个:
href=workflow.aspx?Location=Process1&UserID=12&IDWorkflowLocation=3340
答案 1 :(得分:0)
您是否尝试过在运行时以编程方式修改站点地图节点?本文介绍了如何:http://msdn.microsoft.com/en-us/library/ms178425.aspx
我过去曾经使用过这个,但我似乎记得 SiteMapResolve 事件会在每个请求中触发(即使您在特定的WebForm上定义它)。
希望这有帮助。
答案 2 :(得分:0)
您需要扩展SiteMap类,覆盖CurrentNode属性并在其中获取一些自己的逻辑来捕获它。