我们在我们的网站上有一个区域,人们可以注册并在我们想要在〜/ pageSlug上主办的网站上给自己的页面。我已经尝试使用Global.asax中的规则来做这件事,但是这打破了允许〜/ 控制器直接映射到Index操作的基本默认路由。我没有被允许在userSlug前放置任何类型的分隔符,所以〜/ p/pageSlug在这里并不是真正的选择。如何动态添加到ASP.NET MVC RouteTable?
在获取添加到路由中的用户页面方面,我在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 }
)
);
但这似乎并没有工作。我无法在其他任何地方找到解决方案,并且我确定我的代码非常幼稚,并且背离了对路由的不理解 - 请帮助!
我已经解决了这一个,但没有代码立即手,不知道回答我的问题的礼仪!如果任何人可以建议后者,我很乐意让人们知道我是如何修复它:) – jonsidnell 2011-03-04 16:44:48
回答你自己的问题,并将其标记为正确的是有效的。老问题,但如果可能,你可以发布你的解决方案吗?为了完整性和事实,我有完全相同的问题:) – Will 2013-02-26 20:01:16