将Base64字符串分配给javascript中的图像

时间:2018-12-31 13:46:13

标签: javascript asp.net asp.net-mvc razor binary

我已经在一个基本问题上浪费了很多时间,我有一个.cshtml剃刀视图,该视图具有DataTable类型的模型,此数据表具有一些TableRows,其中的一列存储一个图像字节数组。如何将此模型值分配给视图中的图像元素。这是我到目前为止提出的。

 var binaryData = @Convert.ToBase64String(Model.Rows[0][0] as Byte[]);
    var img = document.getElementById('ImgEle')
                      .setAttribute('src', "data:image/jpg;base64," + binaryData);

我在chrome控制台窗口收到此错误:Uncaught SyntaxError: Invalid regular expression flags

如何解决此问题?

编辑:

感谢@hiltononline回答,这是我最终得到的代码,并且可以正常工作

var binaryData='@Convert.ToBase64String(Model.Rows[0][0] as Byte[])';
var img = document.getElementById("ImgEle");
img.setAttribute("src", "data:image/jpg;base64," + binaryData);

希望这对某人有帮助。

2 个答案:

答案 0 :(得分:2)

$(function(){ var focusItem = localStorage.getItem('focusItem'); if( focusItem != null ){ $(focusItem).focus(); localStorage.removeItem('focusItem'); } }); 的值需要用单引号引起来,以将其视为字符串:

binaryData

另一种选择是直接在setAttribute方法中插入模型值:

var binaryData='@Convert.ToBase64String(Model.Rows[0][0] as Byte[])';

此外,根据数据的存储方式,可能无需再次对其进行解码。您可以使用在线解码器(例如CodeBeautify的base64-to-image-converter

)仔细检查字节数组是否有效

答案 1 :(得分:0)

我只知道如何在javascript中显示base64图像字符串作为标记,因此,如果您的错误仅在此级别,那就是个好消息-否则,第一行(binaryData)真的无法为您提供帮助:< / p>

var binaryData = @Convert.ToBase64String(Model.Rows[0][0] as Byte[]);
var img = document.getElementById("ImgEle");
img.setAttribute("src", "data:image/jpg;base64," + binaryData);

我认为您只是忘记了要使用src设置的属性(setAttribute)的名称,而忘记了img变量的分配。