在不使用MVC帮助程序的情况下输出HTML

时间:2017-02-01 15:06:10

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

我有一个视图从数据库输出数据列表,其中一个字段是通过我的网站上传的图像。我像这样输出图像:

<img src='@item.ToBase64ImageString(@item.FileData)' />

在我的模型中,我有:

    public string ToBase64ImageString(byte[] data)
    {
        return string.Format("data:image/jpeg;base64,{0}", Convert.ToBase64String(data));
    }

我有另一个视图,其目的只是显示所选项目的详细信息(Controller / Details / id),我也希望在此视图中显示图像。

我无法使用上面的代码,因为我在@item中没有单独的项目 - 我有@model但由于某种原因这种方法不起作用。

以下是详细信息视图:

@model Models.Tier

@Html.DisplayNameFor(model => model.FileData)
<img src="@Html.DisplayFor(model => model.ToBase64ImageString(model.Bild))" />

简而言之,如何在不使用帮助程序的情况下为模型字段输出HTML?

1 个答案:

答案 0 :(得分:2)

您可以在字节数组上创建扩展方法,并在需要的地方使用

public static class MyByteArrayExtensions
{
    public static string ToBase64(this byte[] data)
    {
        return string.Format("data:image/jpeg;base64,{0}", Convert.ToBase64String(data));
    }
}

在您看来,

<img src="@Model.Bild.ToBase64()" />