2016-06-30 27 views
1

我有一個登錄控制器的索引視圖,我想要呈現在url http://sitename/login。它適用於我瀏覽到http://sitename/login/index,但我想省略URL的索引。這裏是我的路由配置(默認):如何呈現URL中沒有索引的控制器的索引視圖?

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

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

    } 

..和控制器:

public class LoginController : Controller 
{ 
    // GET: Login 
    public ActionResult Index() 
    { 
     return View(); 
    } 
} 

回答

0

如果你已經獨自離開Default路線,它會做什麼你問。您只需將action路由值的默認值設置爲Index即可。

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

或者,您可以插入額外的路線來覆蓋您的登錄控制器。

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

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

第三種選擇是你LoginController.Index方法重命名爲LoginController.Dashboard_1,因爲這是對每控制器在應用程序中默認的動作名稱。

相關問題