我已经在一个基本问题上浪费了很多时间,我有一个.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);
希望这对某人有帮助。
答案 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
变量的分配。