【发布时间】:2011-10-06 16:54:50
【问题描述】:
一段时间以来,我一直受益于站点地图的优势:
- 外部页面关系。页面不负责定义它们自己的关系,而是由外部提供者提供。在渲染导航控件时,这消除了页面的很多责任。例如。 “渲染我的孩子”而不是“我是一个产品列表页面,所以我应该渲染一个产品列表”。
- 可以从任何地方推断页面关系。例如。站点地图页面完全自动化,面包屑导航和顶级导航也是如此。
- 通用导航。可重复使用的控件可用于呈现指向任何类型页面的链接列表。
到目前为止,我一直在使用SiteMapProviders 作为路由机制。我一直在将“路由 URL”和“处理程序 URL”分别存储到每个节点的 Url 和 Key 属性中。 IE。请求进来,FindSiteMapNode方法被调用,请求被重写为返回节点的key。
这完美,但我知道时代在变,我们现在有了路由表。
经过一些研究,似乎无法从路由中推断出页面之间的关系。尔格:“站点地图不能从路由表中推断出来”。 (我说的对吗?)
假设这句话,我如何保持我精彩的站点地图和与时俱进?有没有办法让两者之间没有大量的代码重复?与我目前的方法相比,我将从路由表中获得哪些具体收益?
我看过:ASP.NET URL Routing with WebForms - Using the SiteMap,它指向http://chriscavanagh.wordpress.com/2009/05/19/asp-net-webform-routing-with-sitemaps/
但是,该解决方案仅允许分别在节点和路由之间进行 1..1 映射。例如,您不能使用此方法让多个产品节点指向单个路由。
【问题讨论】:
标签: c# .net asp.net webforms asp.net-mvc-routing