ASPNET MVC - перенаправить все вложенные папки URL на один контроллер - PullRequest
0 голосов
/ 02 июня 2019

Я портирую веб-сайт на MVC5 и должен убедиться, что структура URL-адреса одинакова.Старый сайт имеет следующие URL:

https://www.example.com/collections/products
https://www.example.com/products/product1-name
https://www.example.com/products/product2-name

У меня есть ProductsController для первого URL, и он прекрасно работает:

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

Однако я не нашел способа сопоставитьвсе URL-запросы (например, / products / product1-name, / products / product2-name) к одному контроллеру.Я посмотрел на все, но не имел никакого успеха.

Я мог бы создать отдельные контроллеры для product1-name, product2-name и т. Д., Но есть тысячи продуктов.По сути, product1-name, product2-name - это идентификаторы продуктов, которые будут возвращены из базы данных.

1 Ответ

0 голосов
/ 02 июня 2019
routes.MapRoute(
            name: "Products",
            url: "collections/products/{action}/{productName}",
            defaults: new { controller = "Products", 
                            action = "GetProductionByName",
                            id = UrlParameter.Optional }
        );

вы будете выглядеть как collection / products / GetProductionByName / productname просто разместите или напишите название продукта и сделайте запрос, чтобы найти продукт по названию, а затем отобразите столбец, который вы хотите отобразить в представлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...