我正在使用Knockout基础知识。 我通过调用WebForm3.aspx / saveData将数据从客户端传递到服务器端。为简单起见,我按数据传递数据(txtName,txtEmail,txtAge)。
$.ajax({
type: "POST",
url: "WebForm3.aspx/saveData",
data: "{name:'" + txtName + "',email:'" + txtEmail + "',age:'" + txtAge + "'}",
contentType: "application/json; charset=utf-8",
datatype: "jsondata",
async: "true",
success: function (response) {
$(".errMsg ul").remove();
var myObject = eval('(' + response.d + ')');
if (myObject > 0) {
bindData();
$(".errMsg").append("<ul><li>Data saved successfully</li></ul>");
}
else {
$(".errMsg").append("<ul><li>Opppps something went wrong.</li></ul>");
}
$(".errMsg").show("slow");
clear();
},
所以我可以在我的服务器端代码中访问这些数据,如下所示。
[WebMethod]
public static int saveData(string name, string email, string age)
{
}
现在时间到了重构我的代码并且不希望按数据传递数据。作为替代方案,我想传递一个包含所有属性的对象。 有人可以建议如何传递对象并从服务器端访问它。
答案 0 :(得分:1)
我没有在这里看到任何淘汰代码,但似乎你正在使用jquery的ajax方法,它应该接受'data'字段的普通javascript对象,这样你就不必编写一个凌乱的长连接字符串(“数据的数据“)
答案 1 :(得分:1)
您可以使用jquery serialize()方法获取某些形式的数据对象,如
<form id="myForm">
<input type="text" name="name" />
<input type="text" name="email" />
<input type="text" name="age" />
</form>
通过
获取表单数据 var postData = $("#myForm").serialize();
使用以下选项
调用ajax data:postData