Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript和C#处理程序-带有JSON的AJAX,发送数组_C#_Javascript_Ajax_Json - Fatal编程技术网

Javascript和C#处理程序-带有JSON的AJAX,发送数组

Javascript和C#处理程序-带有JSON的AJAX,发送数组,c#,javascript,ajax,json,C#,Javascript,Ajax,Json,当我使用AJAX(使用JSON)发送一个数组时,我的C#处理程序不知道如何处理整个查询(由于某种原因,查询字符串突然相互结合) 在本例中,我向服务器发送了一个非常简单的数组,服务器说querystring名称为null(但不是null);不使用数组发送任何请求都可以正常工作 请注意,如果有人能解释一下URL上的数组是什么样子的(例如,如果我想通过浏览器发送请求),我将不胜感激 AJAX代码: function btnClick() { var arr = new Arra

当我使用AJAX(使用JSON)发送一个数组时,我的C#处理程序不知道如何处理整个查询(由于某种原因,查询字符串突然相互结合)

在本例中,我向服务器发送了一个非常简单的数组,服务器说querystring名称为null(但不是null);不使用数组发送任何请求都可以正常工作

请注意,如果有人能解释一下URL上的数组是什么样子的(例如,如果我想通过浏览器发送请求),我将不胜感激

AJAX代码:

    function btnClick() {
        var arr = new Array();
        arr[0] = "Hey";
        arr[1] = "Stackoverflow";
        arr[2] = "What's your name?";

        var jsonParam = { Name: "test", Pass: "123", Stuff: arr }
        $.ajax({
            url: "Test.ashx",
            type: "get",
            data: JSON.stringify(jsonParam),
            dataType: "json",
            contentType: 'application/json; charset=utf-8',
            async:false,
            success: function (response) { 
                alert(response.Name);
            }
        });
    }
处理程序代码:

public void ProcessRequest (HttpContext context) {
    context.Response.ContentType = "application/json";
    JavaScriptSerializer jss = new JavaScriptSerializer();



    string res = jss.Serialize(new UserInfo { Name = context.Request.QueryString["Name"], Pass = "pass" + context.Request.QueryString["Pass"], Stuff = new string[] { "1", "2" } });
    context.Response.Write(res);
}

您无法从querystring获取json

你可以用这个;您应该从nuget为
JSonConvert
安装
NewtonJson
。如果您不想这样做,可以使用
JavaScriptSerializer
来代替它

    protected object FromJsonToObject(Type t)
    {
        Context.Request.InputStream.Position = 0;
        string json;
        using (var reader = new StreamReader(Context.Request.InputStream))
        {
            json = reader.ReadToEnd();
        }

        return JsonConvert.DeserializeObject(json, t);
    }

在我使用数组之前,我不需要反序列化任何东西。但好吧,我意识到数组现在需要反序列化。谢谢