【发布时间】:2017-06-15 00:12:24
【问题描述】:
我在 .NET 应用程序中定义了我的路由,如下所示:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Register",
url: "Register",
defaults: new { controller = "Home", action = "Register" }
);
routes.MapRoute(
name: "Login",
url: "Login",
defaults: new { controller = "Home", action = "Login" }
);
routes.MapRoute(
name: "ResetPwd",
url: "{action}/{id}",
defaults: new { controller = "Home", action = "ResetPwd", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
这样我就可以有如下路线:
mysite.com/Login
mysite.com/Register
mysite.com/ResetPwd
现在,当我从 mysite.com/Login 成功登录时尝试将用户重定向到仪表板时,其他控制器会出现问题,如下所示:
return RedirectToAction("Index", "Dashboard");
但是我遇到了一个错误:
找不到资源。
我想我现在要为仪表板/索引定义一条路线...但是从那以后我必须手动添加每条路线吗?
我在这里做错了什么?
【问题讨论】:
-
此控制器操作不在 routeconfig 中
-
您的
ResetPwd路由意味着任何包含 2 个段的 url 都会到达该路由(不是Default路由)。您应该将其更改为(例如)url: "ResetPassword/{id}", (or you could add a constraint for theId` 参数 -
@StephenMuecke ye 这就像一个魅力,谢谢很多伙伴! =D
标签: c# asp.net asp.net-mvc routing routes