ASP.NET MVC4与ASPX渲染引擎:动态填充src属性

时间:2016-10-06 10:26:20

标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor

根据Type属性显示我想要更改项目图像的项目列表。 这是代码:

<img src="<%if (item.VolumeType == 1)
                                Url.Content(String.Format("../../Images/DVDDisk.png"));
                            else
                                Url.Content(String.Format("../../Images/harddisk.png")); %>" height="32" width="32" />

但是显示任何图像是因为检查了我找到的html:

<img src="" height="32" width="32">

怎么了? 我还没有理解将ASPX与MVC引擎一起使用是否有效,或者它是不正确的做法并且是最好的Razor。

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要使用条件运算符(?:)而不是内联if和内联表达式块(<%=)而不是内联代码块(<% )。以下内容应该符合您的要求:

<img src="<%= item.VolumeType == 1 ?
    Url.Content(String.Format("../../Images/DVDDisk.png")) :
    Url.Content(String.Format("../../Images/harddisk.png")) %>" height="32" width="32" />

对于它的价值,您可以通过删除string.Format来电(因为它们不是必需的)或使用string.Format来ptu文件来简化上述操作删除重复Url.Content调用的名称:

<img src="<%= Url.Content(String.Format("../../Images/{0}.png", item.VolumeType == 1 ? "DVDDisk" : "harddisk")) %>" height="32" width="32" />