如何通过ajax调用将多个对象发送到Web方法
Posted
技术标签:
【中文标题】如何通过ajax调用将多个对象发送到Web方法【英文标题】:How to send multiple objects to web method through ajax call 【发布时间】:2018-07-31 16:19:50 【问题描述】:我想在 ajax 中发送 2 个对象,在这两个对象中,一个对象包含记录列表
任何人都可以帮助如何做到这一点,我正在使用以下代码块但无法正常工作
var obj = ;
obj.ChangeDetails = "";
obj.ChangeInformation = "";
obj.ChangeVersion = "";
obj.CSProduct = "";
obj.Description = $("#caseDesc").val();
obj.EndDate = $("#newSchEdDt").val();
obj.EndDateSpecified = $("#newSchEdTime").val();
obj.Environment = $('#caseEnv').find(":selected").text();
obj.Operation = "";
obj.RiskAssessment = $("input[name=ccRisk]").val();
obj.SiteEnvironment = "";
obj.SOPDetails = $("#ccSOP").val();
obj.SOPReferenced = "";
obj.SOPVersion = $("#ccSOPVer").val();
obj.StartDate = $("#newSchStDt").val();
obj.StartDateSpecified = $("#newSchStTime").val();
obj.Subject = $("#caseSubj").val();
var Members= ;
Members.cstdetails = newCustList;
var postData =
objEmp: obj,
objMem: Members
;
$.ajax(
type: "POST",
url: "c9newcaseModel.aspx/CreateCase",
contentType: "application/json; charset=utf-8",
dataType: "json",
traditional: true,
data: JSON.stringify(postData),
success: function (result)
alert(result.d)
,
error: function (xhr)
alert("responseText: " + xhr.responseText);
);
public static string CreateCase(CreateCase objEmp, srcCustlst[] objMem)
我已经创建了具有相应属性的 CreateCase 和 srcCustlst 类。
提前致谢
【问题讨论】:
【参考方案1】:您不能将两个单独的对象发布到 POST API。
您可以做的是将这两个类包含在另一个包装类中,然后将其作为输入传递给您的方法,并从您的客户端适当地形成 JSON。
不同的数据可以通过 URL 或 body 发送到 POST 方法。但在您的情况下,由于两者都是复杂对象,更好的方法是使用包含您拥有的两个类的包装类,并从客户端适当地传递数据。
包装类可以如下:
public class RequestWrapper
public CreateCase objEmp get; set;
public srcCustlst[] objMem get; set;
并且可能在您的 post 方法中将您的数据更改为 data: postData,
【讨论】:
以上是关于如何通过ajax调用将多个对象发送到Web方法的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 ajax 调用将 html 表单数据发送到 node.js 服务器?
如何通过 AJAX 将 jquery 对象数据发送到 php?