ASP.NET MVC3 не правильная страница индекса из-за маршрутов - PullRequest
0 голосов
/ 20 декабря 2011

У меня есть следующие маршруты:

 routes.MapRoute(
                 "ActionOnly",
                 "{action}",
                 new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                 new { action = "Klub|Historie" });

            routes.MapRoute(
                "Administrace", // Route name
                "Administrace/{controller}/{action}/{id}", // URL with parameters
                new { controller = "Administrace", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );

            // Hrac/Jmeno_hrace
            routes.MapRoute(
                 "Hrac",
                 "Hrac/{name}",
                 new { Controller = "Hrac", Action = "Name" }
            );


            // pro aktivaci uzivatele který se registroval, ale jeste nepotvrdil email
            routes.MapRoute(
                "Activate",
                "Account/Activate/{username}/{key}",
                new { controller = "Account", action = "Activate", username = UrlParameter.Optional, key = UrlParameter.Optional }
            );

            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );

Почему @Html.ActionLink("Domů", "Index", "Home") создает website.com/Administrace/Home, а не website.com/Home/index и как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 20 декабря 2011

Вместо этого используйте @ Html.RouteLink с именем маршрута default

Ссылка на что-то, что может помочь: В чем разница между RouteLink и ActionLink в ASP.NET MVC?

0 голосов
/ 20 декабря 2011

Ваш Administrace маршрут поглощает все контроллеры.

Вы должны изменить его на жесткий код имени контроллера:

routes.MapRoute(
    "Administrace", // Route name
    "Administrace/Administrace/{action}/{id}", // URL with parameters
    new { controller = "Administrace", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);

Если вы хотите, чтобы этот маршрут работал для нескольких контроллеров, вы должны заменить его областью (или просто добавить ограничение).

...