【发布时间】:2011-06-18 11:05:03
【问题描述】:
我们的网站上有一个区域,人们可以在这里注册并在我们希望托管在 ~/pageSlug 的网站上获得他们自己的页面。我尝试使用 Global.asax 中的规则来执行此操作,但这破坏了允许 ~/Controller 直接映射到 Index 操作的基本默认路由。我不允许在 userSlug 前面放置任何类型的分隔符,因此 ~/p/pageSlug 在这里并不是一个真正的选择。
在将用户页面添加到路由方面,我在 App_Start 处循环浏览页面并将它们显式添加到 RoutesTable。这工作正常,我们已将 AppPool 刷新设置为足够长的时间以使其成为每天一次的任务。不过,这确实让我们有 24 小时的周转时间来为我们的用户“让页面上线”,而我正在努力解决这个问题。
理想情况下,我想做的是在用户注册后将相关路由动态添加到 RouteTable。我试过这样做:
RouteTable.Routes.Add(
RouteTable.Routes.MapRoute(
toAdd.UrlSlug + "Homepage",
toAdd.UrlSlug,
new { controller = "Controller", View = "View", urlSlug = toAdd.UrlSlug }
)
);
但这似乎不起作用。我在其他任何地方都找不到解决方案,而且我确信我的代码既非常幼稚,又暴露出对路由缺乏了解 - 请帮助!
【问题讨论】:
-
我已经解决了这个问题,但不要立即提交代码,并且不确定回答我自己问题的礼仪!如果有人可以就后半部分提出建议,我很乐意让人们知道我是如何修复它的 :)
-
回答您自己的问题并将其标记为正确是有效的。老问题,但如果可能的话,你能发布你的解决方案吗?既是为了完整性,也是为了我有完全相同的问题:)
标签: asp.net-mvc routing routetable