Как можно улучшить эту таблицу маршрутов? - PullRequest
0 голосов
/ 20 марта 2011

У меня есть этот метод RegisterRoutes в Global.asax, можно ли его сокращать, давая такой же результат? а как насчет их заказа?

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

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

        routes.MapRoute(
            "CreateVillage", // Route name
            "villages/create", // URL with parameters
            new { controller = "Villages", action = "Create", name = UrlParameter.Optional } // Parameter defaults
        );

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

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

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

1 Ответ

1 голос
/ 20 марта 2011

Вы можете объединить первый с четвертым маршрутом и второй с третьим.Маршрут по умолчанию может также сочетаться со вторым и третьим.Обратите внимание, что вам, вероятно, потребуется использовать некоторые ограничения маршрута, чтобы эта таблица работала правильно.Вы можете поэкспериментировать с отладчиком маршрута, но я бы посоветовал вам написать модульные тесты для ваших маршрутов.

Редактировать:

routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{name}", // URL with parameters
                new { controller = "Villages", action = "List", name = UrlParameter.Optional }, // Parameter defaults
                new { action = "create|list"}
            );

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