将默认以外的静态路由定义为 home 中的类似路由

Defining static routes other than default to similar route in home

我在我的 .NET MVC 5 应用程序中设置了一个默认路由,如下所示:

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }

所以现在每当我访问我的网站时:

localhost:59920 

它打开了我在家里的索引控制器。

现在我在同一个控制器中有更多方法,例如:

Register, Login and such 

如何设置路线使其看起来像这样:

localhost:59920/Login

localhost:59920/Register

使用属性路由

public class AccountController : Controller
{
  [Route("Login")]
  public ActionResult Login()
  {
     return View();
  }
}

使用传统路由

routes.MapRoute(
    name: "Login",
    url: "Login",
    defaults: new { controller = "Account", action = "Login" }
);

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

现在,当您请求 yourSite/Login 时,AccountController 中的登录操作方法将处理该请求。