我正在考虑为我计划创建的新网站设置数据库路由。我一直在查看以下有关使用数据库中的FriendlyUrls 的教程:
但是,我想对多个实体使用相同的路由结构。含义:
mysite.com/{PlayerName} 转到player.aspx mysite.com/{TeamName} 转到 team.aspx …等等…
有人可以指出使用 ASP.NET 实现这一目标的正确方向吗?是否可以使用内置的路由引擎,或者我应该为此编写自己的 HTTPModule 代码?
谢谢 大卫
最佳答案
我不确定为什么这么多人说这不能通过路由来完成 - 也许我没有得到什么,但是显然使接受的答案成为有效选项的相同逻辑应该完全适用于自定义路由处理程序,例如IRouteHandler 或从 System.Web.Routing.RouteBase 派生的东西。
您可以通过以下方式将“管理器”添加到 RouteCollection (RouteTable.Routes):
routes.Add("MyRoutName", new MyCustomRouteBaseThing())
...或者:
routes.Add(new Route("whatever/{possiblySomething}", new RouteValueDictionary {
{"whatever", null}
}, new MyImplementationOfIRouteHandler()));
...等等,取决于您的需求。
例如,如果您选择 RouteBase
替代方案,请覆盖 GetRouteData()
、GetVirtualPath()
等。我并不是说这一定是比接受的答案更好的选择,我只是不明白为什么路由应该被视为不可行。 (我错过了什么?)
编辑: 在我写下上面的内容时,“已接受的答案”是 Tasos K 发布的有关 URL 重写的答案,他也获得了赏金。已接受的答案已被重新分配。
关于ASP.Net WebForms 路由 多个目的地的单一路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26089260/