Пользовательские маршруты ASP.NET для простого инструмента управления требованиями - PullRequest
1 голос
/ 11 мая 2010

Я внедряю очень простой инструмент управления требованиями.

Я хочу, чтобы URL-адреса выглядели так:

Показывает домашнюю страницу "Project One":
http://projectmanager/Project/Project%20One

Показывает список требований, над которыми работает для "Project One"
http://projectmanager/Project/Project%20One/Requirements

Показывает требование 1 для "Project One"
http://projectmanager/Project/Project%20One/Requirement/1

Как я мог настроить маршруты так, чтобы

http://projectmanager/Project/Project%20One 

обрабатывается контроллером проекта

http://projectmanager/Project/Project%20One/Requirements
and
http://projectmanager/Project/Project%20One/Requirements/1

обрабатывается контроллером требований.

Возможно ли это вообще?

1 Ответ

0 голосов
/ 11 мая 2010

Я думаю, что это так.

Один из вариантов:

Контроллеры:

public class ProjectController : Controller
{
    public ActionResult Project(string projectName)
    {
        return Content("Project: " + projectName);
    }
}

public class RequirementsController : Controller
{
    public ActionResult Requirements(string projectName)
    {
        return Content("Requirements: " + projectName);
    }

    public ActionResult Requirement(string projectName, int id)
    {
        return Content("Requirement: " + projectName + " - " + id);
    }
}

Регистрация маршрута:

        routes.MapRoute(null,
                        "Project/{projectName}",
                        new {controller = "Project", action = "Project"});
        routes.MapRoute(null,
                        "Project/{projectName}/Requirements",
                        new { controller = "Requirements", action = "Requirements" });
        routes.MapRoute(null,
                        "Project/{projectName}/Requirement/{id}",
                        new { controller = "Requirements", action = "Requirement" });

Идентификатор зависит от того, какие другие маршруты вы хотите.

Редактировать: кстати: эти маршруты должны быть добавлены до вашего маршрута по умолчанию (если он у вас еще есть в шаблоне приложения).

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