ASP .NET MVC-3 route add / map в виртуальный каталог для псевдонима - PullRequest
2 голосов
/ 03 января 2012

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

routes.Add("DomainRoute", new DomainRoute( 
        "home.example.com", // Domain with parameters 
        "{action}/{id}",    // URL with parameters 
        new { controller = "Home", action = "Index", id = "" }  // Parameter defaults 
));

Поскольку мой блог находится в виртуальном каталоге, мне нужно добавить маршрут в этот виртуальный каталог с именем "~ / blog", который я пробовалкод, подобный этому, без хорошего результата,

        routes.Add("DomainRoute", new DomainRoute(
            "blog.domain.com",                                     // Domain with parameters
            "blog",                                        // URL with parameters
            new { controller = "blog" }  // Parameter defaults
        ));

Если кто-то сможет пролить свет на это, это будет удивительно.

Ответы [ 2 ]

2 голосов
/ 12 января 2012

Вы можете попытаться сделать блог областью MVC вашего основного веб-приложения.Вы создаете новую область под названием блог.Это создаст папку под названием «Области / блог» в вашем основном webroot.Затем вы можете превратить папку «блог» в виртуальный каталог, указывающий на ваше приложение блога.

Я сделал это в недавнем веб-проекте для моего администратора.Я использовал этот пост в блоге, и он работал отлично.Очень просто и сохраняет ваше приложение красивым и чистым.

http://bob.archer.net/content/aspnet-mvc3-areas-separate-projects

Когда вы на самом деле находитесь в области «блога», ваши actionlinks и все работает как обычно.Вам нужно только добавить «Area = 'blog'" к вашим ссылкам, которые перемещают вас из области в область.

После создания области блога посмотрите на созданный ею файл маршрутов.Я надеюсь, что это имеет смысл.

0 голосов
/ 07 января 2012

Здесь подразумевается, что виртуальная папка полностью отличается от приложения MVC, в котором она находится - если это так, нужно ли вам вообще использовать маршрутизацию MVC, поскольку вам не нужны какие-либо ресурсы MVC дляначинается с?Вероятно, было бы проще настроить поддомен так, чтобы он указывал на соответствующую папку в IIS, и вообще обходить маршрутизацию MVC.

...