gpt4 book ai didi

c# - 如果 Controller 操作不存在,则自定义路由 mvc4

转载 作者:行者123 更新时间:2023-11-30 13:02:53 25 4
gpt4 key购买 nike

我想要发生的是,如果用户导航到 Home/Index 之类的 Controller Action 页面并且存在操作,则继续正常进行。但是,如果用户导航到不存在的 Controller Action Home/NotExist,那么我想将其默认为名为 MyController 的“默认” Controller >.

我尝试在接受 *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 而不是 Default

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" }
);

关于c# - 如果 Controller 操作不存在,则自定义路由 mvc4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14159076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com