为一个控制器创建多个路由
本文关键字:创建 路由 控制器 一个 | 更新日期: 2023-09-27 18:33:24
我在尝试为我的一个控制器创建两个自定义路由时遇到问题。我有两种情况:
- 如果有人导航到/Register,则应使用"成员"控制器和"索引"视图
- 如果有人导航到/Register/NY,则应使用成员控制器和注册视图,并将状态代码作为参数传递
以下是我的 global.asax 文件中的内容:
routes.MapRoute(
"RegisterMap", // Route name
"Register", // URL with parameters
new { controller = "Members", action = "Index" } // Parameter defaults
);
routes.MapRoute(
"Register", // Route name
"Register/{stateCode}", // URL with parameters
new { controller = "Members", action = "Register" } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
如果我导航到/Register/NY,一切正常,但如果我只导航到/Register,则会收到 404 错误。
我做错了什么?
您的路由正确。
我会验证您在成员控制器中是否有索引操作。
我检查了场景,它工作正常。 请验证一下。
- 您的 MembersController 类存在于/Controller/中,它扩展了 Controller。
- 成员控制器包含一个没有参数或可为空的参数的方法索引。
- 索引操作方法没有 HTTPPOST 方法。[这可能会导致 404 错误。