C# MVC5如何在代码中找到根路径?

C# MVC5如何在代码中找到根路径?,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我有一些帮助器方法来构建Html输出,但它只在本地开发人员而不是临时服务器上正确显示。~z~不起作用,因为这不是剃须刀 我的本地站点路径是 我的登台路径是 在我的本地 src=“/testSite/images.test.jpg” 在我的登台实例上,它生成src=“//images.test.jpg” 我确信在代码端有一个内置的方法来实现这一点 var baseUrl=System.Web.Mvc.UrlHelper.GenerateContentUrl(“~/images/”, HttpCon

我有一些帮助器方法来构建Html输出,但它只在本地开发人员而不是临时服务器上正确显示。~z~不起作用,因为这不是剃须刀

我的本地站点路径是
我的登台路径是

在我的本地 src=“/testSite/images.test.jpg”
在我的登台实例上,它生成src=“//images.test.jpg”

我确信在代码端有一个内置的方法来实现这一点

var baseUrl=System.Web.Mvc.UrlHelper.GenerateContentUrl(“~/images/”, HttpContext.Current)

使用可以继续使用的GenerateContentUrl~/

var baseUrl=System.Web.Mvc.UrlHelper.GenerateContentUrl(“~/images/”, HttpContext.Current)

使用GenerateContentUrl,您可以继续使用~/

Hi,您也可以尝试使用

ex:

../file意味着在父目录中查找文件。如果您只有一个文件,它将在当前目录中查找

谢谢

您好,您也可以用

ex:

../file意味着在父目录中查找文件。如果您只有一个文件,它将在当前目录中查找


谢谢你。。。在查看了所有可用的帮助程序和上下文对象之后,我必须得出结论,没有任何函数或方法可以提供您想要的内容(除了在其中一个函数中使用波浪线,如其他答案所示)。所有这些都需要某种类型的字符串处理(例如
Split()
TrimEnd()
)才能工作

微软给了我们一个创可贴功能,你可以用它来解决这个问题:

var baseUrl = VirtualPathUtility.AppendTrailingSlash(HttpRuntime.AppDomainAppPath);
var tb = new TagBuilder("img");
tb.MergeAttribute("title", "Main Image");
tb.MergeAttribute("src", baseUrl +"images/test.jpg");  //notice I removed the initial slash
return new MvcHtmlString(tb.ToString(TagRenderMode.SelfClosing));
AppendTrailingSlash
保证在虚拟目录为“/”时不会在正斜杠上“翻倍”,因此这应该适用于暂存和开发环境


另外,我很确定您应该使用而不是AppDomainAppPath,它提供物理路径而不是虚拟路径。

。。。在查看了所有可用的帮助程序和上下文对象之后,我必须得出结论,没有任何函数或方法可以提供您想要的内容(除了在其中一个函数中使用波浪线,如其他答案所示)。所有这些都需要某种类型的字符串处理(例如
Split()
TrimEnd()
)才能工作

微软给了我们一个创可贴功能,你可以用它来解决这个问题:

var baseUrl = VirtualPathUtility.AppendTrailingSlash(HttpRuntime.AppDomainAppPath);
var tb = new TagBuilder("img");
tb.MergeAttribute("title", "Main Image");
tb.MergeAttribute("src", baseUrl +"images/test.jpg");  //notice I removed the initial slash
return new MvcHtmlString(tb.ToString(TagRenderMode.SelfClosing));
AppendTrailingSlash
保证在虚拟目录为“/”时不会在正斜杠上“翻倍”,因此这应该适用于暂存和开发环境


另外,我很确定你应该使用而不是
AppDomainAppPath
,它提供了物理路径而不是虚拟路径。

这似乎返回了磁盘上的绝对路径,而不是站点的基本url是的,我只是在复制OP的代码。它可能应该是
AppDomainAppVirtualPath
,而不是
AppDomainAppPath
。我要添加一个注释。这似乎返回了磁盘上的绝对路径,而不是站点的基本url。是的,我只是在复制OP的代码。它可能应该是
AppDomainAppVirtualPath
,而不是
AppDomainAppPath
。我再加一张便条。