【问题标题】:Receive and manipulate in a WebMethod an unknown number of name/value sent via Ajax在 WebMethod 中接收和操作通过 Ajax 发送的未知数量的名称/值
【发布时间】:2016-06-12 17:59:09
【问题描述】:

我想向 WebMethod 发送带有一些数据的 Ajax 帖子。在原始代码中我不知道有多少对数据,因为它们是动态的,但为了简化,我在这个例子中只添加了两个数据:

$.ajax({
    url: 'dama-actions.aspx/UpdateDataAdvanced',
    type: "POST",
    data: "{data: {'one':'onevalue', 'two':'twovalue'}}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
    alert(data.d);
    }
});

然后,使用 WebMethod,我需要读取数据以了解所有名称/值对。我尝试了很多方法,但我没有成功,lstItems 永远是空的。 我添加了一个 foreach 和一个计数器来查看列表是否填满,但没有。

[WebMethod]
public static string UpdateDataAdvanced(object data)
{
    List<object> lstItems = new JavaScriptSerializer().ConvertToType<List<object>>(data);

    int counter = 0;

    foreach (string item in lstItems)
    {
        counter = counter + 1;
    }

    return counter.ToString();
}

最后的用途是读取这些对并动态地创建一条 SQL 语句来更新一个表。我知道如何为我的 SQL 语句操作数据,但此时我需要知道为什么我的 WebMethod 不收集数据。

感谢您的帮助,请原谅我的英语不好。

【问题讨论】:

    标签: jquery asp.net json ajax webmethod


    【解决方案1】:

    只需将“数据”参数的类型更改为Dictionary&lt;string, string&gt;

    public static string UpdateDataAdvanced(Dictionary<string, string> data)
    {
        // Further code
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-26
      • 2015-06-14
      • 2015-09-28
      • 2016-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-24
      相关资源
      最近更新 更多