Подтвердить что ты не робот

Поддержка ASP.Net MVC для вложенных ресурсов?

Я ищу вариант маршрутизации, аналогичный вложенным маршрутам RESTFul, доступным через Rails. Проект SimplyRestful в MvcContrib больше не работает и не кажется текущим с версией 1.0 MVC.

Это схема uri, которую я ищу,

/Деятельность/10/Задача/1/Редактировать или /Деятельность/10/Задача/Редактировать/1

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

Это то, с чем я работал...

    routes.MapRoute(null,
        "Activity/{activityId}/Task/{action}/{id}", 
        new { controller = "Task", action = "Edit", activityId = "", id = "" });
4b9b3361

Ответ 1

Добавьте значение по умолчанию для activity:

routes.MapRoute(null,
    "Activity/{activityId}/Task/{action}/{id}/{activity}",
    new { 
        controller = "Task", 
        action = "Edit", 
        id = "",
        activityId = "", 
        activity = "" });

Помните также, что этот маршрут будет только забирать URL-адреса в форме

/Activity/10/Edit/1/theActivity

а ваш пример

/Activity/10/Edit/1

будет выбран маршрут по умолчанию, установив значения маршрута в

controller = "Activity"
action = "10"
id = "Edit/1"

Phil Haack Отладчик маршрутизации для ASP.NET MVC чрезвычайно полезен для выяснения того, как работать с этими вещами...