在 WebMethod 中接收和操作通过 Ajax 发送的未知数量的 name/value
Receive and manipulate in a WebMethod an unknown number of name/value sent via Ajax
我想向 WebMethod 发送一个 Ajax post 和一些数据。在原始代码中我不知道有多少对数据,因为它们是动态的,但为了简化我在这个例子中只添加了两个数据:
$.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,我需要读取数据以了解所有 name/value 对。我尝试了很多方法,但都没有成功,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语句来更新一个table。我知道如何为我的 SQL 语句操作数据,但此时我需要知道为什么我的 WebMethod 不收集数据。
谢谢你的帮助,请原谅我的英语不好。
只需将 'data' 参数的类型更改为 Dictionary<string, string>
。
public static string UpdateDataAdvanced(Dictionary<string, string> data)
{
// Further code
}
我想向 WebMethod 发送一个 Ajax post 和一些数据。在原始代码中我不知道有多少对数据,因为它们是动态的,但为了简化我在这个例子中只添加了两个数据:
$.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,我需要读取数据以了解所有 name/value 对。我尝试了很多方法,但都没有成功,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语句来更新一个table。我知道如何为我的 SQL 语句操作数据,但此时我需要知道为什么我的 WebMethod 不收集数据。
谢谢你的帮助,请原谅我的英语不好。
只需将 'data' 参数的类型更改为 Dictionary<string, string>
。
public static string UpdateDataAdvanced(Dictionary<string, string> data)
{
// Further code
}