将C#字节数组传递给javascript

时间:2011-02-28 10:50:18

标签: c# javascript sharepoint-2010 modal-dialog

我有一种情况,我在网页的C#类后面的代码中有一个图像的字节数组(弹出页面)

protected void ToFile(byte[] byteImage)

{
            string strByte = byteImage.ToString();
            this.Context.Response.Write("<script type='text/javascript'>window.frameElement.commitPopup('" + byteImage + "');</script>");
            this.Context.Response.End();
}

我希望将byteImage传递给处理函数,即在父页面上的.javascript /

function onDialogClose(dialogResult,returnValue) {
        if (dialogResult == SP.UI.DialogResult.OK) {
            //var inputBuffer = new System.Byte(returnValue.length);
            //var byte = new Array();
            //byte = returnValue;

如何在returnValue(现在只包含System.Byte [])获取字节数组

有没有办法从Javascript中访问C3 byte []数组?

thankx

2 个答案:

答案 0 :(得分:6)

您可以使用base64编码安全地编码字节数组:

var result = Convert.ToBase64String(bytes);

当然,为了在JavaScript中访问原始字节值,您必须在JavaScript端将其转换回来。 JavaScript中没有内置函数,但您可能grab the decodeBase64 implementation from this website

答案 1 :(得分:1)

你可以用这个

private string Bytes2String(byte[] bytes){
    return "["+string.Join(",",bytes.Select(b=>b.ToString()))+"]";
}

如果您使用的是.Net 4.0