ASP.NET MVC-3将添加/映射到别名的虚拟目录

ASP.NET MVC-3将添加/映射到别名的虚拟目录,asp.net,asp.net-mvc-3,url-routing,iis-7.5,windows-server-2008-r2,Asp.net,Asp.net Mvc 3,Url Routing,Iis 7.5,Windows Server 2008 R2,我一直关注域路由。我已经能够为不同的子域路由到控制器。但我不知道如何路由到虚拟目录。如您所见,这是一个路由到普通mvc控制器的示例 routes.Add("DomainRoute", new DomainRoute( "home.example.com", // Domain with parameters "{action}/{id}", // URL with parameters new { controller = "Home"

我一直关注域路由。我已经能够为不同的子域路由到控制器。但我不知道如何路由到虚拟目录。如您所见,这是一个路由到普通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
        ));

如果有人能对此有所了解,那将是令人惊讶的。

这里的含义是虚拟文件夹与它所处的MVC应用程序完全不同——如果是这样的话,您是否需要使用MVC路由,因为您一开始就不需要任何MVC资源?只需将子域配置为指向IIS中的适当文件夹,并完全绕过MVC路由,可能会更容易。

您可以尝试将博客作为主web应用程序的MVC区域。您创建了一个名为blog的新区域。这将在主webroot中创建一个名为“Areas/blog”的文件夹。然后,您可以将“blog”文件夹转换为指向您的blog应用程序的虚拟目录

我在最近的一个网络项目中为我的管理后端做了这件事。我用了这篇博文,效果很好。非常简单,使您的应用程序保持整洁

当你真正进入“博客”区域时,你的动作链接和一切都正常工作。您只需将“Area='blog'”添加到将您从一个区域移动到另一个区域的链接中


创建博客区域后,请查看它创建的路由文件。我希望这是有意义的。

虚拟目录是否总是博客?虚拟目录是URL的一部分,所以可能是blog/{action}/{id}它不起作用。让我澄清一下。它是共享windows主机上的虚拟目录。它不是承载在域根目录上的主站点的一部分。如果不指定域,会发生什么行为?IIS将把请求留在mvc应用程序中,您可以从那里开始。我认为可能还有其他一些问题使它无法工作,但它似乎不需要域路由。哦,我理解这个问题。现在我明白了更多:)。那么,博客与主页位于不同的虚拟目录中?对不起,guyz。我道歉。现在,我已经能够创建子域指向一个网站与我的主机提供商的帮助。在这种情况下,不需要做域路由。无论如何,谢谢。:)托管提供商不允许创建这样的子域。我只能创建别名。好主意。我会试试让你知道的。我会给你赏金,因为赏金很快就到期了。。虽然现在还不能完成编译。。BlogEngine.Net博客目录中存在大量错误。。说“找不到命名空间资源”,我没有任何使用BlogEngine.Net的经验,因此无法提供这方面的任何信息。我希望你能弄明白。也许发布一些错误代码,我会看看是否能找到任何东西。