gpt4 book ai didi

asp.net - 如何使用 jQuery/JSON/AJAX 将字符串传递到 ASP.NET Web 服务

转载 作者:行者123 更新时间:2023-12-01 04:29:06 25 4
gpt4 key购买 nike

现在我创建了一个 JavaScript 对象,然后将其字符串化,将其放入隐藏的文本框中,我后面的代码可以读取该字符串。然后我使用 JSON.NET 解析该字符串,效果很好。我现在尝试使用 ajax 将其发布到我的网络服务,但在如何发送字符串方面遇到一些问题。我尝试了很多方法,但遇到了常见错误,例如

Invalid JSON primitive: myString.

所以我检查了这个http://encosia.com/2010/05/31/asmx-scriptservice-mistake-invalid-json-primitive/它适用于硬编码值,但我想使用变量。

创建对象的JavaScsript:

for (var i = 0; i < results.rows.length; i++) {
var row = results.rows.item(i);
var customer = new Object();

customer.id = row['id']
customer.name = row['name']

var customerString = JSON.stringify(customer);

$.ajax({
type: "POST",
url: "synchronise.asmx/synchroniseCustomers",
data: "synchroniseCustomers: " + customerString,
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function (xhr, status) {
alert("An error occurred: " + status);
},
success: function (msg) {
alert("success");
}
});
}

网络方法:

 public void synchroniseCustomers(string customerString)
{
JObject o = JObject.Parse(customerString);
string id = (string)o["id"];
string name = (string)o["name"];

如果我使用data: '{ FirstName: "Dave", LastName: "Ward"}'在上面的示例中它可以工作,但我希望传递一个字符串。

有什么建议吗?

谢谢

最佳答案

你已经很接近了,但你需要像这样发送:

data: '{"synchroniseCustomers": ' + customerString + '}'

此外,无需将其作为字符串接受并在 .NET 端手动反序列化 JSON。如果您将输入类型声明为匹配的服务器端结构,.NET 将自动处理所有这些。

这应该有助于您尝试在那里执行的操作:http://encosia.com/2009/04/07/using-complex-types-to-make-calling-services-less-complex/

关于asp.net - 如何使用 jQuery/JSON/AJAX 将字符串传递到 ASP.NET Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4048684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com