2017-08-03 68 views
1

我有一个分布式mvc asp.net web应用程序。应用程序的用户界面分散在不同的组件中,并且每个组件具有不同的主机值,这意味着应用程序针对用户界面的不同部分具有不同的URL。有一个XML站点地图文件在不同的组件之间共享。站点地图中的节点使用相对URL和属性来指示应使用哪个主机值,并将主机值存储在配置文件中 - 这是因为该应用程序存在于几个不同的环境中,并且像这样硬编码网站地图不实用。MvcSiteMapProvider - 修改节点url

考虑到所有这些,当在某个导航链接中呈现站点地图节点时,我必须修改节点的URL以使其使用正确的主机完全限定。我可以通过.net SiteMapNode类轻松完成此操作。

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

回答

0

我正在尝试讨论here的方法,即使用自定义ISiteMapNodeUrlResolver。

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

到目前为止,它似乎根据需要工作。