MVC 5应用程序 - 使用图像而不是标签文本的复选框列表

时间:2015-02-03 21:07:39

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

我正在创建一个MVC应用程序。其中一个页面需要一个包含动态复选框列表的字段。要显示的实际复选框数由SQL表中的行数控制。每行都是一个复选框。我已经弄清楚如何执行此操作并使用以下代码在页面上显示它们。此示例包含动态货币列表,每个货币由复选框表示。此示例在每个复选框旁边显示一个标签,描述货币的内容(例如,USD)。但是,真正想要的是显示一个图像(它将作为byte []类型包含在模型中)。我不确定如何实现这一点,因为MVC不支持像@ Html.ImageFor这样的任何东西。这可能比我做得更简单,但我无法弄清楚如何将图像放在@Html.LabelFor当前所在的位置。

        @for (int i = 0; i < Model.CurrencyList.Count; i++)
        {
            <div>
                @Html.HiddenFor(x => x.CurrencyList[i].AdvertiserCurrencySupportId)
                @Html.CheckBoxFor(x => x.CurrencyList[i].Checked)
                @Html.LabelFor(x => x.CurrencyList[i].Checked, Model.CurrencyList[i].Currency)
            </div>
        }

2 个答案:

答案 0 :(得分:2)

您应该能够使用基本图像标记,在需要的地方插入数据

<img src="@Model.CurrencyList[i].ImageUrl">

答案 1 :(得分:1)

由于你有字节数组,看起来你想使用内联图像,所以你应该能够用纯HTML做到这一点:

<img src="data:image/png;base64,@Convert.ToBase64String(Model.CurrencyList[i].ImageBytes)">

但是你可能会更好地使用指向URL的普通图像,因为内联图像可能会占用大量带宽,因为每次页面加载时它都会拉动它们,因此您不会获得任何浏览器缓存