如果控制器动作不存在,则自定义路由mvc4
本文关键字:自定义 路由 mvc4 不存在 控制器 如果 | 更新日期: 2023-09-27 17:50:45
我想要发生的是,如果用户导航到Controller Action
页面,如Home/Index
和操作存在,然后继续正常。但是,如果用户导航到不存在Home/NotExist
的Controller Action
,那么我想将其默认为名为MyController
的"默认"控制器。
我尝试在接受*url*
的标准默认路由之前添加路由
routes.MapRoute(
"CustomRoute",
"{*url}",
new { controller = "MyController", action = "MySingleAction" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
但是Home/Index
会选择CustomRoute而不是默认的
N。B我试过把路由后,它抛出一个错误
你应该让你的自定义路由是最后定义的路由。在本例中:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
"CustomRoute",
"{*url}",
new { controller = "MyController", action = "MySingleAction" }
);