asp.net - 如何从Web方法中的动态参数列表中获取各个参数,使用jquery ajax方法发送?

标签 asp.net jquery ajax

我在我的aspx页面上使用jquery ajax方法,它将在后面的代码中调用webmethod。当前webmethod需要几个参数,例如名字,姓氏,地址等,我使用jquery ajax方法传递这些参数

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

现在我的要求已经改变,要传递的参数的数量和类型对于 ex. 参数组合可以是类似 fname,city 的数量和类型 或 fname,city 或 city,lname 或 fname,lname,city 或其他东西。因此 webmethod 应该接受任何数字参数。我想到使用数组来执行此操作,如所述 here .

但我不明白如何识别已传递​​哪些参数以及传递了多少参数 到 webmethod 将数据插入/更新到数据库。请问有人可以帮助我吗?

谢谢

最佳答案

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

非常粗略的例子

(服务器端)

//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/

相关文章:

c# - 奇数和零星的 Chrome 错误 : The chunked cookie is incomplete

c# - ASP.NET 中的分页;过滤后页数不变

jquery - jQuery foreach 循环中的 Json 值

php - Laravel 5.3 - jquery ajax(内部服务器错误 500)

php - 使用带有ajax和formdata的codeigniter上传图像

响应重定向前的asp.net延迟

asp.net - 公共(public) .NET 网站。检测用户是否来 self 们公司内部还是公众?

javascript - 在jQuery中如何将被 "mouseover"事件检测到的优先级赋予子元素

javascript - 基本动态选择列表 PHP 和 AJAX Jquery

html - Framework7 Domcache 在 DOM 中复制 ajax 页面 - 如何解决这个问题?