Сведения о вопросе

Life

22:16, 6th August, 2020

Теги

asp.net   asp.net-mvc   url   routing   sitemap    

Могу ли я генерировать маршруты ASP.NET MVC из Sitemap?

Просмотров: 499   Ответов: 2

Я думаю изучить структуру ASP.NET MVC для предстоящего проекта. Могу ли я использовать расширенный маршрутизации, чтобы создать ДЛИННЫЕ URLs на основе иерархии sitemap?

Пример пути навигации:

Главная > Магазин > Продукты > Бытовая Техника > Кухня > Посуда > Кухонные Гарнитуры > Антипригарные

Типичный (я думаю) MVC URL:
http://example.com/products/category/NonstickCooksets

Нужные URL:
http://example.com/shop/products/household/kitchen/cookware/cooksets/nonstick

Могу я это сделать?



  Сведения об ответе

nYU

01:58, 3rd August, 2020

Зак, если я правильно понимаю, вы хотите неограниченную глубину подкатегорий. Ничего страшного, так как MVC Preview 3 (я думаю, 3 или 4) это было решено.

Просто определите маршрут, как

"{контроллер} / {действие}/{*categoryPath}"

для url таких как :

http://example.com/shop/products/household/kitchen/cookware/cooksets/nonstick

вы должны иметь ShopController с действием продуктов :

public class ShopController : Controller
{
...
    public ActionResult Products(string categoryPath)
    {
        // the categoryPath value would be
        // "household/kitchen/cookware/cooksets/nonstick". Process it (for ex. split it)
        // and then decide what you do..
        return View();
    }


  Сведения об ответе

VERSUION

07:54, 9th August, 2020

Маршрут MVC позволяет вам определить практически любую структуру, которую вы хотите, вам просто нужно определить, что каждая из частей означает семантически. Вы можете иметь биты, которые "жестко закодированы", например "shop/products",, а затем определить rest как переменную," {категория}/{подкатегория}/{специальность} " и т. д.

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

Хотя маршрут по умолчанию - это простой контроллер, действие, своего рода настройка идентификатора, это, конечно, не предел того, что вы можете сделать.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться