我正在尝试将我们的MVC3应用程序的遗留区域嵌入到网站新的根布局中的iframe中。
目的是节省时间并避免网站新旧部分之间的Javascript和CSS样式冲突。
到目前为止,我已经能够有条件地将来自旧区域的流量重定向到区域控制器中OnActionExecuting
方法中的新URL。
e.g。 http://localhost:80/Area/Account/Profile
至http://localhost:80/App/Area/Account/Profile
我现在的麻烦是设置一个捕获所有路径,可以将整个URL传递给特定的操作和控制器,这样我就可以获取URL并将其应用到iFrame。
我在我的路由中有这个但它没有传递给动作的路径,如果路径中有多个段,它根本不会到达路径:
routes.MapRoute(
"AppRedirect", // Route name
"App/{*page}", // URL with parameters
new { controller = "Home", action = "App", page = UrlParameter.Optional }
);
有没有办法可以让路线使用包括所有段的完整路径?
或者是否有更好的方法将其中一个项目区域嵌入到新根布局中的iFrame中,同时保持类似于旧配置的可读URL?如果可以帮助我,我不想修改旧区域的结构或路由配置。
答案 0 :(得分:0)
您知道网址中可能包含多少个细分受众群?您可以设置多个路径(层次结构 - 大多数段过滤为一个)指向相同的控制器操作,并在那里完成其余操作。
routes.MapRoute(
"AppRedirect2", // Route name
"App/{seg1}/{seg2}", // URL with parameters
new { controller = "Home", action = "App", seg1 = UrlParameter.Optional, seg2 = UrlParameter.Optional }
);
routes.MapRoute(
"AppRedirect1", // Route name
"App/{seg1}", // URL with parameters
new { controller = "Home", action = "App", page = UrlParameter.Optional }
);
等...