在MultiSelectList ASP.NET MVC Razor中显示HTML和图像

时间:2014-02-02 13:36:38

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

我需要显示一个能够选择多个项目的下拉列表。我能够将它与Dictionary对象绑定,并且它可以与纯文本值一起使用。但是,我需要在值中包含img标记。

这基本上是一个人的列表以及他们的公开个人资料图片。但是,该列表显示的是html标记,而不是显示实际图像。

以下是我视图中的剃刀代码:

@Html.ListBox("MyFriends", new MultiSelectList(Model.Connections.Distinct(), "key", "value"), new { @class = "list-item"})

输出显示为:

<img src="http://localhost/api/person/1211/dp" title="avatar" /> John Smith
<img src="http://localhost/api/person/1212/dp" title="avatar" /> Person Two
<img src="http://localhost/api/person/1213/dp" title="avatar" /> Person 3
<img src="http://localhost/api/person/1214/dp" title="avatar" /> Rick Rude

但我想实际显示显示图片后跟名称。任何解决方案?

1 个答案:

答案 0 :(得分:1)

您遇到的问题与Razor甚至ASP.NET MVC没有严格关联。 它与DOM禁止您直接在标记内部标记标记(因此它是与HTML相关的约束)有关。

可以使用CSS样式将图像添加到选择列表中: How to add a images in select list

这很可能无法解决您的问题,因为样式是静态添加的,而您的列表是动态的。

总而言之,我认为您应该考虑使用Html.Listbox的替代方案,例如jQuery Combobox