2017-02-01 36 views
1

我有一個視圖從數據庫輸出數據列表,其中一個字段是通過我的網站上傳的圖像。我輸出的圖像,像這樣:不使用MVC助手輸出HTML

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

而且在我的模型,我有:

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

我有另一種看法,其中它的目的只是爲了顯示所選項目的詳細信息(控制器/詳細信息/ ID ),我也想在這個視圖中展示圖片。

我無法使用上面的代碼,因爲我沒有@item中的單個項目 - 我有@model但由於某種原因,此方法無效。

下面是詳細信息視圖:

@model Models.Tier 

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

總之,我怎麼能輸出HTML的模型字段不使用助手?

回答

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()" />