我在我的aspx页面上使用jquery ajax方法,这将在后面的代码中调用webmethod。当前,webmethod需要几个参数,例如firstname,lastname,address等,这些参数是我使用jquery ajax方法传递的

data:JSON.stringify({fname:firstname,lname:lastname,city:city})


现在我的要求已更改,例如,要传递的参数的数量和类型对于ex是不固定的。参数组合可以像fname,city
或fname,city或city,lname或fname,lname,city或其他名称。因此,web方法应使其可以接受任何数字参数。我想到使用数组来做到这一点,如here所述。

但是我不明白如何识别已传递​​哪些参数和多少参数
网络方法以将数据插入/更新到数据库。请有人可以帮助我吗?

谢谢

最佳答案

您可以在客户端使用与服务器端包含一个或多个参数数组的对象匹配的复杂类型。

非常粗糙的例子

(服务器端)

//class declaration
public class MyObject
{
      //values
      string[] Keys;
      string[] Values;

      //methods
      public void Add()
      {...}
}

//web service - WebService.asmx
[WebMethod]
public void AddObject(MyObject NewObject)
{
     NewObject.Keys.Length = ...;
     NewObject.Add();
     ...
}


(客户端)

var MyObject= { };

MyObject.Keys = { $("#key1").val(), $("#key2").val(), ... };
MyObject.Values = { $("#val1").val(), $("#val2").val(), ... };

var DTO = { 'MyObject' : MyObject};

$.ajax({
   type: "POST",
   contentType: "application/json; charset=utf-8",
   url: "WebService.asmx/AddObject",
   data: JSON.stringify(DTO),
   dataType: "json"
});


上面的示例将在客户端序列化您的对象,您将能够在服务器端访问该对象,就像使用new()创建它一样。

关于asp.net - 如何从Web方法中的动态参数列表中获取单个参数,使用jquery ajax方法发送?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2818343/

10-12 12:58
查看更多