ajax回发不适用于字节数组

时间:2014-05-30 10:34:15

标签: javascript ajax asp.net-mvc postback

我正在尝试在回发操作中发送byte[],但未能得到它。 代码段:

$.ajax({
        url: proxy.Model.RequestParamUrl,
        type: "Post",
        async: false,
        data: proxy.requestArgs,
        dataType: 'json',
        success: function (Jsondata) {
            proxy.allowPost = false;
            proxy.postSucceed = true;
            //hidden code
            return true;
        }
    });

调试时,我可以在byte[]中看到proxy.requestArgs。 但是在控制器中,我在此操作结果中得到null。

[AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Index(byte[] param)
    {
//I get null in this param.
}

我错过了什么? 任何解决方案

2 个答案:

答案 0 :(得分:4)

您正在将数据传递给控制器​​操作,并且该操作需要一个名为param的帖子项。所以在你的JS中,让你的ajax调用看起来像这样(注意对数据的更改):

$.ajax({
    url: proxy.Model.RequestParamUrl,
    type: "Post",
    async: false,
    data: { param: proxy.requestArgs },
    dataType: 'json',
    success: function (Jsondata) {
        proxy.allowPost = false;
        proxy.postSucceed = true;
        //hidden code
        return true;
    }
});

答案 1 :(得分:1)

你试过这个吗? 基本上,在您的操作中接受数据为string,并在其中将其转换为byte[]

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(string param)
{
   var bytes = System.Text.Encoding.UTF8.GetBytes(param);
}