我正在考虑为我计划创建的新网站设置数据库路由。我一直在查看以下有关使用数据库中的FriendlyUrls 的教程:
http://www.asp.net/web-forms/tutorials/aspnet-45/getting-started-with-aspnet-45-web-forms/url-routing http://www.asp.net/web-forms/tutorials/aspnet-45/getting-started-with-aspnet-45-web-forms/url-routing
但是,我想对多个实体使用相同的路由结构。意义:
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())
... Or:
routes.Add(new Route("whatever/{possiblySomething}", new RouteValueDictionary {
{"whatever", null}
}, new MyImplementationOfIRouteHandler()));
...等等,取决于您的需求。
如果你选择RouteBase
替代方案例如覆盖GetRouteData()
, GetVirtualPath()
等等。我并不是说这一定是比接受的答案更好的选择,我只是不明白为什么路由应该被视为不可行。 (我错过了什么?)
EDIT: 在我写上面的时候,“已接受的答案”是 Tasos K 发布的关于 URL 重写的答案,他也获得了赏金。已接受的答案已被重新分配。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)