如何发送一个JSON对象来使用jQuery一个WebMethod?发送JSON到webmethod?
回答
请参考this文章戴夫·沃德。这是一个完成这个东西的教程。你也会发现其他很棒的jQuery/ASP.net的东西。
编辑: - 戴维调用方法不带任何参数,可以更换空数据财产与实际数据要发送:
$.ajax({
type: "POST",
url: "Default.aspx/GetDate",
data: "{'name':'tiger1','hobbies':['reading','music']}",//PUT DATA HERE
contentType: "application/json; charset=utf-8",
dataType: "json",
您将需要使用Ajax将它张贴并接受webmethod上的传入字符串。然后,您需要使用JavaScript解串器将其转换为服务器端的对象。
我想他是问如何把JavaScript对象变成一个JSON字符串发送到上述webmethod。 – ceejayoz 2009-10-06 20:00:03
的WebMethods期待一个包含字符串JSON,将在服务器端进行解析,我用的是JSON.stringify
功能对象转换参数字符串,并发送数据,我有这样的功能:
jQuery.executePageMethod = function(location, methodName, methodArguments,
onSuccess, onFail) {
this.ajax({
type: "POST",
url: location + "/" + methodName,
data: JSON.stringify(methodArguments), // convert the arguments to string
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data, status) {
var jsonData = JSON.parse(data.d);
onSuccess(jsonData, status);
},
fail: onFail
});
};
,我建议你,包括你的页面json2.js解析器,有JSON.stringify功能的跨浏览器。
+1 - 好包装 – 2009-10-06 19:12:59
我见过用the open-source JSON2.js库来解析和“字符串化”复杂对象的数据简化这个最方便的解决方案。
这两个优秀的文章细讲:
Using complex types to make calling services less… complex由Dave沃德。
JavaScript Arrays via JQuery Ajax to an Asp.Net WebMethod由Chris Brandsma。
第二篇文章可能对你特别重要,尽管它调用Web服务方法用下面的签名......
public void SendValues(List<string> list)
...它演示了如何使用JSON2.js库在javascript中呈现List<string>
(使用jQuery,此示例直接从第二篇文章中获取):
var list = ["a", "b", "c", "d"]; var jsonText = JSON.stringify({ list: list }); // The 'list' is posted like this $.ajax({ type: "POST", url: "WebService1.asmx/SendValues", data: jsonText, contentType: "application/json; charset=utf-8", dataType: "json", success: function() { alert("it worked"); }, failure: function() { alert("Uh oh"); } });
只需使用您的webmethod URL来代替Web服务。
你可以使用另一个库是jquery-json
library。一旦包括:
var json = $.toJSON(your_object);
噢,谢谢你。缩小版本是〜2k,并且它与jQuery很好地集成(很明显),如果你已经使用它(这是我),这很好。 – 2009-10-06 21:31:04
JSON。字符串化确实有帮助,但:
它不是跨浏览器 到这里看看: http://www.sitepoint.com/blogs/2009/08/19/javascript-json-serialization/#
对于浏览器的内置功能 - 每个浏览器都会有它的问题。如果你使用上面的序列化你将需要:
- 删除换行符用正则表达式中的字符串
- 照顾约“字符串
示例代码是在这里:
var dataString = JSON.stringify({
contractName: contractName,
contractNumber: contractNumber
});
$.ajax({
type: "POST",
url: "CreateQuote.aspx/GetCallHistory",
data: dataString,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
alert(result.CallHistoryDescription);
OpenLightBox('divDelete');
}
});
[System.Web.Services.WebMethod]
public static object GetCallHistory(string contractName, string contractNumber)
{
return new
{
CallHistoryDescription = "Nalan"
};
}
在创建JSON时,是否必须首先传递contractName然后传递contractNumber,因为有时我不确定哪些顺序参数会来,因为动态客户端脚本 – 2015-04-09 11:35:37
- 1. 成功发送JSON对象到asp.net WebMethod,使用jQuery
- 2. 将JSON数据发送到Webmethod时获取parserror
- 3. 使用jQuery将JSON对象发送到asp.net WebMethod时出错
- 4. 发送表单序列化到asp.net webmethod
- 5. 发送JSON到PHP
- 6. 发送JSON到Rails
- 7. 发送一个字符串值将WebMethod
- 8. 发送JSON对象到Flex
- 9. 从Flash发送JSON到PHP
- 10. 不能发送postString到json
- 11. 发送json从javascript到php
- 12. 发送JSON到Rails REST API
- 13. 从AS3发送JSON到PHP
- 14. 从HTTPS JSON发送到HTTP
- 15. 角,JSON发送到API
- 16. 通过发送json发送json
- 17. 如何将参数发送到asp c#webMethod?使用Ajax Jquery的
- 18. 将文件从JQuery Ajax发送到C#Webmethod
- 19. WebMethod - JSON序列化错误
- 20. 将Json传递给WebMethod
- 21. 发送json响应
- 22. 发送JSON请求
- 23. 发送JSON数据
- 24. 何处发送JSON?
- 25. 发送阵列JSON
- 26. bodyParser发送w/JSON
- 27. 使用jQuery发送JSON数据到PHP
- 28. Struts 2:如何发送JSON到行动
- 29. 如何将JSON发送到Asp.NET Webservice?
- 30. Sencha Model.save发送/0.json到服务器
+1 - 我认为这个话题和那篇文章会不断出现一段时间:) – 2009-10-06 19:06:27
是的@Russ Dave已经展示了轻到不知道有多少开发人员。 – TheVillageIdiot 2009-10-06 19:08:01
你确定业余爱好数组按照你的预期通过了吗? – 2009-10-06 20:20:22