Структура URL Asp.net MVC2 - лучшие практики - PullRequest
0 голосов
/ 20 ноября 2010

Каковы лучшие практики для настройки проектов с несколькими интерфейсами в asp.net MVC2?Я начинаю проект, в котором нам нужна типичная схема, например:

example.com / - интерфейс конечного пользователя

example.com / Admin / - управление сайтом

Сайт будет достаточно вовлечен, чтобы просто иметь всю пользовательскую логику в HomeController и всю логику администратора в AdminController на самом деле не вариант.Я читал об использовании нескольких определений маршрутов, но следующее не работает должным образом:

routes.MapRoute(
            "Admin", // Route name
            "Admin/{controller}/{action}/{id}", // URL with parameters
            new { controller = "Admin", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

Это приводит к тому, что все ссылки на домашней странице указывают на example.com/Admin/local-partвместо example.com/local-part.

Я бы хотел не указывать разные MapRoute для каждого контроллера администратора (исключая {controller} из отображения каждый раз).

I 'Мы также читали о настройке различных областей в проекте, но кажется, что для сферы действия этого проекта слишком .

Наконец, я также прочитал, что вы можетеналожил ограничения на MapRoutes, но документация по этой части меня смущает.Есть ли что-то очевидное, что мне не хватает?Если это не удастся, есть ли какие-то передовые практики для структуры asp.net, о которых мне следует помнить?

1 Ответ

2 голосов
/ 20 ноября 2010

Звучит так, как будто Area готов к тому, что вы хотите сделать. Настройка области на самом деле не так уж и сложна, в основном вам просто нужно зарегистрировать ее. По умолчанию маршрутизация области будет соответствовать значению по умолчанию в global.asax, за исключением того, что дополнительный URL-адрес «\ area» в URL-адресе. Я вполне уверен, что это заняло у меня всего несколько минут, когда я настроил этот проект несколько месяцев назад.

Если ваш административный контроллер достаточно сложен, чтобы выходить за рамки одного контроллера, то это означает, что область может быть гарантирована.

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