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

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

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

Начало> Магазин> Товары> Для дома> Kitchen> Cookware> Cooksets> Nonstick

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

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

Я могу сделать это?

18.08.2008 17:05:40
2 ОТВЕТА
РЕШЕНИЕ

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

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

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

для 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();
    }
10
31.08.2008 12:38:24

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

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

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

2
18.08.2008 17:50:58