MvcSiteMapProvider - 修改节点URL

时间:2017-08-03 13:03:28

标签: c# asp.net asp.net-mvc mvcsitemapprovider

我有一个分布式mvc asp.net Web应用程序。应用程序的UI分为不同的组件,每个组件具有不同的主机值,这意味着应用程序具有不同UI的不同URL。有一个XML站点地图文件,它在不同的组件之间共享。站点地图中的节点使用相对URL和一个属性,指示应使用哪个主机值,主机值存储在配置文件中 - 这是因为应用程序存在于几个不同的环境中,因此硬编码了一个完全限定的URL。站点地图不实用。

鉴于所有这些,当在一些导航链接中呈现站点地图节点时,我必须修改节点的URL以使用正确的主机使​​其完全合格。我可以使用.net SiteMapNode类轻松地完成此操作。

我的问题是我需要做一些与MvcSiteMapProvider类似的事情。到目前为止,我还没有多少运气。建议欢迎。

1 个答案:

答案 0 :(得分:0)

我正在尝试讨论https://cwiki.apache.org/confluence/display/Hive/LanguageManual+JoinOptimization的方法,即使用自定义的ISiteMapNodeUrlResolver。

默认实现已使用xml站点地图文件中的可选提供的here属性替换主机名。在我的自定义实现中,我查找了基于hostName属性的配置设置,以根据配置设置进行运行时修改。

到目前为止,它似乎正在按需运作。