Маршрутизация: Как скрыть название действия в URL? - PullRequest
9 голосов
/ 23 января 2012

В маршруте MVC по умолчанию

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

при каждом обращении к действию индекса URL не отображает имя действия при обращении к действию "Индекс".

Мне бы хотелосьчтобы получить такое поведение на другом контроллере, который извлекает данные для одного элемента.Мне бы хотелось, чтобы действие по умолчанию было названо «get», и для этого действия я бы хотел, чтобы в URL не отображалось имя действия, только контроллер и идентификатор элемента.

Я думал, что подобный маршрут кодин выше, как это:

routes.MapRoute(
            "item_details",
            "item/{action}/{id}",
            new { controller = "item", action = "Get" }
            );

сделал бы трюк, но он дает мне URL, как localhost: xxxx / item / Get / 152 ... Что я пропустил?

Ответы [ 2 ]

13 голосов
/ 23 января 2012

Попробуйте это:

routes.MapRoute(
        "item_details",
        "item/{id}",
        new { controller = "item", action = "Get" }
        );
0 голосов
/ 02 августа 2017

Попробуйте это:

routes.MapRoute(
            "Default", // Route name
            "{controller}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...