在家中定义除默认路由之外的静态路由到类似路由

时间:2017-01-28 15:35:24

标签: asp.net asp.net-mvc asp.net-mvc-5 routing asp.net-mvc-routing

我在我的.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

1 个答案:

答案 0 :(得分:1)

使用属性路由

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中的Login操作方法将处理该问题。