我正在尝试获得以下链接:
AccountController
/ Index
)AccountController
/ Login
)EmailsController
/ Index
action和2112的映射将是一个路由参数)EmailsController
/ List
action和212是一个路由参数)我无法使路线正常工作,因为它们似乎相互冲突。以下内容使我始终拥有路由参数,这不是我所需要的。如果不提供数据库参数,它将不会绑定。
routes.MapRoute(
name: "Default",
url: "{database}/{controller}/{action}",
defaults: new { database = UrlParameter.Optional, controller = "Account", action = "Index" }
);
顺序在您的路线配置中很重要。在MVC中进行路由的关键是从最具体的路由开始并逐步完善。另外,由于您对Emails控制器具有特定的路由规则,因此可以在URL参数中专门指定控制器的名称。因此,在这里您可以执行以下操作:
routes.MapRoute(
name: "Emails",
url: "{id}/Emails/{action}",
defaults: new { controller = "Emails", action = "Index" },
constraints: new { id = @"\d+" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new { controller = "Account", action = "Index" }
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句