我有一个页面可以通过两个不同的路径到达。通过查看url参数来判断采用哪条路线的方法。在一种情况下,url参数为?guid=...
,其他参数为?mode=...
以下是一个示例站点地图文件:
<mvcSiteMapNode title="home" controller="my_controller" action="first_Action">
<mvcSiteMapNode title="Details" controller="my_other_controller" action="index" guid="[what to put here?]" ></mvcSiteMapNode>
</mvcSiteMapNode>
<mvcSiteMapNode title="List page" controller="my_controller" action="second_Action">
<mvcSiteMapNode title="Details" controller="my_other_controller" action="index" mode="[what to put here?]"></mvcSiteMapNode>
</mvcSiteMapNode>
互联网上的各种示例都将属性设置为实际值,但在我的情况下,网址参数guid
和mode
可以是变量。
我需要在guid
或mode
放置什么才能正确制作网站地图?或者我必须使用preservedRouteParameters
或其他东西
答案 0 :(得分:0)
您无法映射您描述的动态网页 - guid
和/或mode
的输入可能会根据用户请求的内容而更改。您想要的是,在站点地图中包含Details
页面的每个有效变体。但是,站点地图提供程序无法知道guid
和/或mode
的有效值实际是什么,除非您告诉它完全有效值是什么
你可以通过明确告诉它:
<mvcSiteMapNode title="home" controller="my_controller" action="first_Action">
<mvcSiteMapNode title="Details" controller="my_other_controller" action="index" guid="1" ></mvcSiteMapNode>
<mvcSiteMapNode title="Details" controller="my_other_controller" action="index" guid="2" ></mvcSiteMapNode>
<mvcSiteMapNode title="Details" controller="my_other_controller" action="index" guid="3" ></mvcSiteMapNode>
<mvcSiteMapNode title="Details" controller="my_other_controller" action="index" guid="4" ></mvcSiteMapNode>
</mvcSiteMapNode>
如果您不相信我,在示例中也会以相同的方式在站点地图提供程序的文档页面中对此进行描述,此处:https://github.com/maartenba/MvcSiteMapProvider/wiki/Defining-sitemap-nodes-in-XML
如果您不喜欢这样,那么您需要通过注册自定义路线来查看手动,自己动手的解决方案。比如处理/sitemap.xml
等。