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

StackOverflow https://stackoverflow.com/questions/14923

Вопрос

Я подумываю о том, чтобы научиться ASP.NET MVC основа для предстоящего проекта.Могу ли я использовать расширенную маршрутизацию для создания длинных URL-адресов на основе иерархии sitemap?

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

Главная страница > Магазин > Товары > Домашнее хозяйство > Кухня > Посуда > Кухонные наборы > Антипригарное покрытие

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

Желаемый URL-адрес:
http://example.com/shop/products/household/kitchen/cookware/cooksets/nonstick

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

Это было полезно?

Решение

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

Просто определите маршрут следующим образом

"{контроллер}/{действие}/{*Путь к категории}"

для URL-адреса, такого как :

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

у вас должен быть ShopController с действием Products :

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();
    }

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top