我在域路由方面遵循了Maarten Balliauw's post。我已经能够为不同的子域路由到控制器。但我不知道如何路由到虚拟目录。如您所见,这是路由到通常的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
));
如果有人能为此带来一些启示,那就太棒了。
答案 0 :(得分:2)
您可以尝试将博客设为主Web应用程序的MVC区域。您创建一个名为blog的新区域。这会在您的主webroot中创建一个名为“Areas / blog”的文件夹。然后,您可以将“blog”文件夹转换为指向您的博客应用程序的虚拟目录。
我在最近的管理后端的Web项目中做到了这一点。我用过这篇博文,效果很好。非常简单,让您的应用程序保持良好和干净。
http://bob.archer.net/content/aspnet-mvc3-areas-separate-projects
当你实际进入“博客”区域时,你的行动链接和一切正常。您只需要在链接中添加“Area ='blog'”,即可将您从一个区域移动到另一个区域。
创建博客区域后,请查看它创建的路径文件。我希望这是有道理的。
答案 1 :(得分:0)
这里的含义是虚拟文件夹与它所在的MVC应用程序完全不同 - 如果是这样的话,你是否需要使用MVC路由,因为你不需要任何MVC资源来首先?将子域配置为指向IIS中的相应文件夹并完全绕过MVC的路由可能会更容易。