我有一个mvc 4项目,我正在使用如下所示的图像引用:
<img alt="Progress Update" class="projectListNotificationIcon" src="@Url.Content("~/Images/progressUpdateIcon.png")"/>
@ Url.Content是必要的,它可以同时处理此项目的本地副本以及实时服务器副本。这很好用,但我有另一个地方,我在两个不同的图像之间进行选择,而且代码看起来像这样:
var imagePath = (item.IsOverdue) ? "../../Images/lateIcon.png" : "../../Images/onTimeIcon.png";
如何在上面的if语句中使用@ Url.Content的一些排列?我正在做的当前方式在本地项目中工作,但不在服务器上工作。
答案 0 :(得分:3)
尝试:
<img src="@((item.IsOverdue) ? Url.Content("~/path/img1.jpg") : Url.Content("~/path/img2.jpg"))" alt="whatever" />
使用波浪号(〜)符号可能是关键,因为它会解析相对于站点根目录的URL。
答案 1 :(得分:0)
<img src="@(item.IsOverdue ? "~/path/img1.jpg" : "~/path/img2.jpg")" />
使用以~
符号开头的asp.net mvc 4网址会自动转换为网站相对路径。在此处阅读http://www.davidhayden.me/blog/asp.net-mvc-4-the-new-tilde-slash-feature-in-razor-2