【问题标题】:ASP .NET MVC-3 route add/map to a virtual directory for an aliasASP .NET MVC-3 路由添加/映射到别名的虚拟目录
【发布时间】:2012-01-03 17:38:20
【问题描述】:

我在域路由上关注了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
        ));

如果有人能对此有所启发,那就太棒了。

【问题讨论】:

  • 虚拟目录总是博客吗?虚拟目录是 URL 的一部分,因此可能是 blog/{action}/{id}
  • 没有成功。让我澄清一下。它是共享 Windows 主机上的虚拟目录。它不是托管在域根目录上的主站点的一部分。
  • 如果不指定域会怎样? IIS 会将请求留在您的 mvc 应用程序中,您可以从那里开始。我认为可能还有其他一些问题使其无法正常工作,但它似乎不需要域路由。
  • 哦,我明白了这个问题。现在我明白了更多:)。那么,博客与主目录位于不同的虚拟目录中吗?
  • 对不起,伙计。我很抱歉。现在,我已经能够在托管服务提供商的帮助下创建指向站点的子域。在这种情况下,无需进行域路由。无论如何谢谢。 :)

标签: asp.net asp.net-mvc-3 url-routing iis-7.5 windows-server-2008-r2


【解决方案1】:

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

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

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

当您实际上在“博客”区域内时,您的操作链接和一切都会正常工作。您只需在链接中添加“Area = 'blog'”,即可将您从一个区域移动到另一个区域。

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

【讨论】:

  • 好主意。我会尝试并告诉你。
  • 我给你赏金,因为它很快就会到期.. 虽然现在还不能完成编译.. BlogEngine .Net 博客目录中有很多错误.. 说“找不到命名空间资源”
  • 我没有任何使用 BlogEngine.Net 的经验,因此无法在这方面给您任何意见。我希望你能弄清楚。也许从错误中发布一些代码,我会看看是否能找到任何东西。
【解决方案2】:

这里的含义是虚拟文件夹与其所在的 MVC 应用程序完全不同——如果是这种情况,您是否需要使用 MVC 路由,因为您不需要任何 MVC 资源来首先?将子域配置为指向 IIS 中的相应文件夹并完全绕过 MVC 的路由可能会更容易。

【讨论】:

  • 托管服务提供商不允许创建这样的子域。我只能创建别名。
猜你喜欢
  • 1970-01-01
  • 2011-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 1970-01-01
相关资源
最近更新 更多