我正在使用带有 SDL Tridion 2011 和 ASP.NET MVC4 的 DD4T 框架
我有一些我想使用的非 DD4T 控制器和视图,但是当我尝试访问这些 url 时出现 404 错误。
这是我的路由表
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// Route for SDL Tridion UI 2011 (Aka !SiteEdit)
routes.MapRoute(
"SiteEditBlankPage",
"se_blank.html",
new { controller = "Empty", action = "Index" });
routes.MapRoute(
null, // Route name
"xml/{*PageId}", // URL with parameters
new { controller = "Page", action = "Xml" }, // Parameter defaults
new { pageId = @"^(.*)?$" } // Parameter constraints
);
// Tridion page route
routes.MapRoute(
"TridionPage",
"{*PageId}",
new { controller = "Page", action = "Page" }, // Parameter defaults
new { pageId = @"^(.*)?$" } // Parameter constraints
);
routes.MapRoute(
null, // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
我曾尝试将默认路由移到 Tridion 之上,但随后我得到了 Tridion 页面的 404。
让它工作的唯一方法似乎是有一个特定的路线到我的控制器,例如:
routes.MapRoute(
null, // Route name
"MyController/{action}/{id}", // URL with parameters
new { controller = "MyController", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
有人有想法么?由于上述解决方案并不理想。
(我的 web.config 中没有任何 UI 2012 配置)