【问题标题】:Application Root in MVC App?MVC 应用程序中的应用程序根目录?
【发布时间】:2012-07-25 20:40:40
【问题描述】:

如果我的应用程序部署到域根目录以外的任何其他位置,我在使用基于数据驱动 URL 的逻辑(用于路由)的 MVC 应用程序时遇到一些问题。

我尝试使用各种 Request.Url 属性无济于事。

假设我将我的应用部署到www.mydomain.com/myapp/ 甚至www.mydomain.com/myapp/subapp/。在这些情况下,我如何分别获得/myapp//myapp/subapp/。即使用户在完全不同的页面上,例如/myapp/Users/Recent/

我需要它,这样我就可以为所有数据驱动的 URL 添加前缀,这样我的应用程序在不在域根目录上时仍然可以工作。

谢谢。

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-routing


    【解决方案1】:

    您正在寻找HttpRuntime.AppDomainAppVirtualPath

    请注意,所有 Url.* 助手都会为您执行此操作。

    【讨论】:

    • 路由表可以使用完整路径,对吧?也就是说,如果应用部署在...\must\go\deeper\theApp,路由规则将从theApp开始应用?
    • 只是一个次要类型,但它的 AppDomainAppVirtualPath。谢谢。
    • @AndreCalil 我为静态内容和跨多个区域进行自定义路由,因此它与默认规则略有不同。
    • 仅供参考,如果您使用的是 IIS Express,则可以测试所有这些。转到 MVC 项目的属性,单击 Web 选项卡,在 IIS Express 下,有一个“Project Url”文本框。您可以在此处添加任意数量的子应用级别。它将提示您创建一个新的虚拟目录,单击是。然后在运行的时候,就可以从localhost:nnnnn/must/go/deeper进入到app root了。
    • @DOTang 好的,但是部署路径不会修改路由规则的工作方式,对吧?
    猜你喜欢
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 2017-02-05
    • 1970-01-01
    相关资源
    最近更新 更多