2015-04-03 96 views

回答

1

URL Rewriting是“伪造”一个URL的做法,将其重写为,看起来像是另一个URL。它在一个方向上这样做。这意味着它没有内置的方式来生成在UI上使用的URL。

.NET Routing是MVC应用程序通常使用的内容。它是一个实数,而不是伪造的从URL到URL的一组路由值和/或一组路由值的双向映射。这意味着您可以使用HTML帮助程序(例如ActionLink)轻松地在生成网址以供在应用程序内使用,因此这是从应用程序内部构建自定义网址的推荐和首选方法。

有时候会使用这两种技术,但是URL重写通常只用于执行从已编译应用程序之外进行更改的事情,比如将应用程序嵌套到另一个应用程序中,方式301重定向传统网址。

要回答你的问题,是的,它可以完成,但应该与.NET路由,而不是URL重写。要使用这样的名称,您需要名称和ID之间的映射。有几种方法可以完成:

  1. 通过使用包含相关ID的名称和路由值的静态路由段,在路由配置中进行名称-ID映射。只有当您的URL不需要在应用程序中动态更改时,此方法才有效。
  2. 在缓存的字典对象内使用名称标识映射。通过覆盖GetRouteDataGetVirtualPath方法,使用custom RouteBase实现来执行每个方向的映射。