ASP.NET MVC自定义URL遇阻,咨询/Login/Login格式URL是否合规
ASP.NET MVC中/Login/Login格式URL的用法解析
/Login/Login本身不是不良用法,这完全符合ASP.NET MVC默认路由的规则(
{controller}/{action}/{id}),只是看起来重复了点,但功能上没任何问题,用户能正常访问,搜索引擎也能识别,算不上错误写法。要是觉得这个URL不够简洁,不用纠结属性路由的混乱,用默认路由就能轻松优化。在
RouteConfig.cs里给登录单独加一条前置路由就行:// 优先匹配登录路由 routes.MapRoute( name: "LoginRoute", url: "Login", defaults: new { controller = "Login", action = "Login" } ); // 保留原有的默认路由 routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } );这样用户访问
/Login就会自动指向Login控制器的Login动作,URL简洁了,代码也没那么乱。你之前用
routes.MapMvcAttributeRoutes()觉得代码乱,应该是没做统一规划。如果之后想再尝试属性路由,可以给控制器加路由前缀,比如:[RoutePrefix("Account")] public class LoginController : Controller { [Route("Login")] // 对应URL /Account/Login public ActionResult Login() { return View(); } }把路由规则集中在控制器和动作上,分类清晰了就不会乱。
内容的提问来源于stack exchange,提问作者krautcez
相关产品推荐
相关产品推荐

