【发布时间】:2012-01-31 15:55:34
【问题描述】:
我目前正在为应用程序编写新闻文章方面,并将新路由(用于新文章)添加到我的 RouteTable,这看起来很好,但路由无法访问?
我使用的代码如下:
var routes = RouteTable.Routes;
using (routes.GetWriteLock())
{
var url = contentHelper.GetPageUrl(page);
routes.MapRoute(page.Id.ToString(), url, new { controller = "Cms", action = "Index", id = url }, new[] { "Web.Controllers.CmsController" });
}
正如我之前所说,新的 Url 已添加到 RouteTable.Routes 但我无法访问该页面。重新启动后,它会被 Global.asax 中的 RegisterRoutes 拾取并正常工作。
您能对此有所了解的任何想法都会很棒,因为我想在不强制重启应用的情况下实现这一目标
编辑
这是我 global.asax 中的 RegisterRoutes
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("LogOff", "LogOff", new { controller = "Account", action = "LogOff" });
routes.MapRoute(
"News", // Route name
"News/",// URL with parameters
new { controller = "NewsPage", action = "Index" }, // Parameter defaults
new[] { "Web.Controllers.NewsController" }
);
//register all content pages
var urls = new ContentPageHelper().GetAllUrls();
foreach (var url in urls)
{
routes.MapRoute(url.Key.ToString(), url.Value, new { controller = "Cms", action = "Index", id = url.Key }, new[] { "Web.Controllers.CmsController" });
}
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}",// URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
【问题讨论】:
标签: c# model-view-controller asp.net-mvc-routing