C# MVC应用程序中的应用程序根目录?

C# MVC应用程序中的应用程序根目录?,c#,asp.net-mvc,asp.net-mvc-routing,C#,Asp.net Mvc,Asp.net Mvc Routing,如果我的应用程序部署到域根以外的任何其他位置,那么使用基于数据驱动URL的逻辑(用于路由)的MVC应用程序会出现一些问题 我尝试使用各种Request.Url属性,但没有效果 假设我将我的应用部署到www.mydomain.com/myapp/甚至www.mydomain.com/myapp/subapp/。在这些情况下,我如何分别获得/myapp/和/myapp/subapp/。即使用户位于完全不同的页面,例如/myapp/Users/Recent/ 我需要它,这样我就可以为所有数据驱动的UR

如果我的应用程序部署到域根以外的任何其他位置,那么使用基于数据驱动URL的逻辑(用于路由)的MVC应用程序会出现一些问题

我尝试使用各种Request.Url属性,但没有效果

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

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


谢谢。

您正在寻找
HttpRuntime.AppDomainAppVirtualPath


请注意,所有的
Url.*
帮助程序都将为您完成此操作。

路由表将使用完整路径,对吗?也就是说,如果应用部署在
…\must\go\deeper\theApp
,路由规则将从
theApp
开始应用-只是一种次要类型,但它的AppDomainAppVirtualPath除外。谢谢。@AndreCalil我为静态内容和跨多个区域进行自定义路由,因此它与默认规则略有不同。仅供参考,如果您使用的是IIS Express,您可以测试所有这些。转到MVC项目的属性,单击Web选项卡,在IIS Express下有一个“项目Url”文本框。您可以在此处添加任意数量的子应用级别。它将提示您创建新的虚拟目录,单击“是”。然后,当您运行时,您可以从@DOTang访问应用程序根目录。可以,但部署路径不会修改路由规则的工作方式,对吗?