0

我有一个 mvc 4 项目,我在其中使用如下所示的图像引用:

<img alt="Progress Update" class="projectListNotificationIcon" src="@Url.Content("~/Images/progressUpdateIcon.png")"/>

@Url.Content 是它在该项目的本地副本和实时服务器副本上工作所必需的。这很好用,但是我还有另一个地方可以在 2 个不同的图像之间进行选择,并且代码如下所示:

var imagePath = (item.IsOverdue) ? "../../Images/lateIcon.png" : "../../Images/onTimeIcon.png";

如何在上面的 if 语句中使用 @Url.Content 的一些排列?我目前的做法适用于本地项目,但不适用于服务器。

4

2 回答 2

2

尝试:

<img src="@((item.IsOverdue) ? Url.Content("~/path/img1.jpg") : Url.Content("~/path/img2.jpg"))" alt="whatever" />

使用波浪号 (~) 符号可能是关键,因为它解析了相对于站点根目录的 url。

于 2012-08-17T12:56:08.513 回答
0
<img src="@(item.IsOverdue ? "~/path/img1.jpg" : "~/path/img2.jpg")"  />

~使用 asp.net mvc 4 以符号开头的 url会自动转换为站点相对路径。在这里阅读http://www.davidhayden.me/blog/asp.net-mvc-4-the-new-tilde-slash-feature-in-razor-2

于 2012-08-18T02:56:18.247 回答