我想向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不收集数据。
感谢您的帮助,请原谅我的英语不好。
答案 0 :(得分:0)
只需更改“数据”的类型即可。参数加入Dictionary<string, string>
。
public static string UpdateDataAdvanced(Dictionary<string, string> data)
{
// Further code
}