Иерархии в MVC3 - PullRequest
       13

Иерархии в MVC3

0 голосов
/ 25 февраля 2012

Я работаю в своем духе, используя учебник ASP.NET MVC, и не смог найти ответ, который искал.

Я понимаю, что каждый класс контроллера в корневой папке 'Controller' сопоставлен с URL-адресом, поэтому:

****Controller Folder****
    |- StoreController.cs

Отображение на $url/Store

Однако, если я хочу создать подпапку

Т.е. класс контроллера, расположенный для $url/Store/Testing, я не могупосмотрим, как я об этом.Я пытался извлечь класс из StoreController.cs, но это не сработало.

Ответы [ 2 ]

1 голос
/ 25 февраля 2012

URL-адреса не обязательно соответствуют структуре внутренней папки приложения MVC.Вы можете использовать таблицы маршрутизации MVC, чтобы скрыть внутреннюю структуру и перенаправить определенные URL-адреса на любые желаемые контроллеры / действия.Например, вы можете создать класс TestingController.cs в папке Controllers и использовать этот маршрут в Global.asax:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Store-Testing", // Route name
            "Store/Testing/{action}/{id}", // URL with parameters
            new { controller = "Testing", 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
        );

    }

В этом случае TestingController будет обрабатывать запрос к http://[domain]/Store/Testing..

0 голосов
/ 25 февраля 2012

Этот URL-адрес с маршрутом по умолчанию указывает на действие под названием «Тестирование» в контроллере Store.

Однако вы можете создавать собственные маршруты в файле global.asax.

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