我需要显示一个能够选择多个项目的下拉列表。我能够将它与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
但我想实际显示显示图片后跟名称。任何解决方案?
答案 0 :(得分:1)
您遇到的问题与Razor甚至ASP.NET MVC没有严格关联。 它与DOM禁止您直接在标记内部标记标记(因此它是与HTML相关的约束)有关。
可以使用CSS样式将图像添加到选择列表中: How to add a images in select list
这很可能无法解决您的问题,因为样式是静态添加的,而您的列表是动态的。
总而言之,我认为您应该考虑使用Html.Listbox
的替代方案,例如jQuery Combobox。