【问题标题】:AJAX request to ASP.NET Web Service - What parameter type to use?对 ASP.NET Web 服务的 AJAX 请求 - 使用什么参数类型?
【发布时间】:2011-03-02 22:44:49
【问题描述】:

我有一个 JSON 对象数组,其中一些包含键/值对,其值是一个数组。

例子:

var jsonArray = [{ "key1":"value1", "key2":["value21", "value22"]},
                 { "key1":"value3", "key2":["value41", "value42"]}];

编辑:不小心使用了大括号而不是括号。

我正在尝试通过 AJAX 将其发送到使用 jQuery 的 ASP.NET Web 服务:

$.ajax({
    type: "post",
    url: "example.asmx/SomeFunction"
    data: "{ 'items': '" + JSON.stringify(jsonArray) + "' }",
    contentType: "application/json;charset=utf-8",
    dataType: "json"
});

这是发送数据的正确方法吗?另外,SomeFunction 参数中需要什么数据类型来接受和解析 JSON 数据?

【问题讨论】:

    标签: c# jquery asp.net ajax json


    【解决方案1】:

    这是发送数据的正确方式吗?

    不,以下会更好:

    $.ajax({
        type: "post",
        url: "example.asmx/SomeFunction"
        data: JSON.stringify({ items: jsonArray }),
        contentType: "application/json;charset=utf-8",
        dataType: "json"
    });
    

    另外,我需要在 SomeFunction 参数中使用什么数据类型来接受和解析 JSON 数据?

    它会映射到:

    public void SomeFunction(IEnumerable<Foo> items)
    {
        ...
    }
    

    Foo 的定义如下:

    public class Foo
    {
        public string Key1 { get; set; }
        public IEnumerable<string> Key2 { get; set; }
    }
    

    在我的示例中,我使用了 IEnumerable&lt;T&gt;,因为我假设您只会枚举值,但如果您需要索引器,您也可以将它们定义为数组 T[]

    【讨论】:

    • 非常有帮助。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多