站点地图的缺点

时间:2009-06-04 20:05:15

标签: asp.net sitemap

我被限制使用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页面。任何想法?

3 个答案:

答案 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属性并在其中获取一些自己的逻辑来捕获它。