В настоящее время я пишу аспект новостной статьи в приложение и добавляю новый маршрут (для новой статьи) в свой 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, но я не могу попасть на страницу.После перезапуска он регистрируется RegisterRoutes в Global.asax и работает нормально.
Любой индикатор, который вы можете пролить на это, был бы великолепен, так как я хочу добиться этого без принудительного перезапуска приложения
РЕДАКТИРОВАТЬ
Это RegisterRoutes из моего global.asax
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
);
}