ASP.Net WebForms 路由 多个目的地的单一路由

标签 asp.net webforms routes

我正在考虑为我计划创建的新网站设置数据库路由。我一直在查看以下有关使用数据库中的FriendlyUrls 的教程:

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())

...或者:

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/

相关文章:

asp.net - 将 Controller Action 权限动态分配给 asp.net MVC 中的角色

php - 如何在ajax URL路由中添加变量

c# - .NET CSV uploader 允许空值

asp.net - 在什么情况下 ctl00 前缀会呈现为其他内容,例如。 ctl01?

user-controls - 在 webform 页面中使用命名空间有什么好处?

c# - 蜜蜂蜇伤 vs. WebControls

ruby-on-rails - 带有字符串路径的 Redirect_to

python - 从 Django 路由到 Angular 路由

c# - 了解锁定帮助?

asp.net - 同一条线上的两个基础设施控制