如何在ASP.Net MVC razor helper中指定图像的虚拟路径

zsz*_*zep 11 html css asp.net asp.net-mvc razor

在我的剃刀风格助手类(位于App_Code文件夹中,我有这行代码:

<img src="../../Content/images/ajax_activity.gif" alt="loading"/>
Run Code Online (Sandbox Code Playgroud)

这在Cassini中运行良好,但是当我将应用程序部署到IIS(虚拟目录)时,IIS无法找到路径.虚拟路径被忽略.这也行不通:

<img src="@Href("~/Content/images/ajax_activity.gif")" alt="loading" />
Run Code Online (Sandbox Code Playgroud)

Cha*_*let 27

试试这个:

<img src="@Url.Content("~/Content/images/ajax_activity.gif")" alt="loading" />
Run Code Online (Sandbox Code Playgroud)


zsz*_*zep 7

好的,解决了它,虽然我不确定它为什么会起作用.尝试以下所有组合后没有成功:

<img src="../Content/images/ajax_activity.gif" alt="loading"/>
<img src="/Content/images/ajax_activity.gif" alt="loading"/>
<img src="~/Content/images/ajax_activity.gif" alt="loading"/>
<img src="Content/images/ajax_activity.gif" alt="loading"/>
Run Code Online (Sandbox Code Playgroud)

以下最终按预期工作

<img src="./Content/images/ajax_activity.gif" alt="loading"/>
Run Code Online (Sandbox Code Playgroud)

它使用虚拟目录集正确返回图像路径.有人能解释一下吗?

  • 迟回复,但`./ Stuff/foo.bar`将在应用程序的基本目录中查找`Stuff/foo.bar`.`〜/ Stuff/foo.bar`对应于您可能未配置的虚拟路径.`../Stuff/foo.bar`是一个相对路径,在父目录中查找`Stuff/foo.bar`.`Stuff/foo.bar`在当前目录中查找,和`/ Stuff/foo.bar` ..好吧,我无法解释那一个.我本来期望一个也查看基目录.在尝试修复类似解决方案时偶然发现了这一点.点这些都可以是不同的,这就是为什么它可能不起作用. (2认同)