将参数作为JSON对象传递给WebMethod
Passing parameters to WebMethod as JSON objects
当我将参数传递给WebmMethod
时,会出现各种错误。以下是我的各种尝试和我得到的错误:
globalData
是一个数组,mapping
是一个可以反序列化为List<Mapping>
的数组,selectedFund
是一个整数。
C#WebMethod
[WebMethod]
public static void ProcessData(string data, List<Mapping> mapping, int selectedFund)
{
//blah blah
}
尝试1
var payload = new Object();
payload.data = globalData;
payload.mapping = chosenMappings;
payload.selectedFund = $selectedFund.val();
$.ajax({
//...etc
data: JSON.stringify(payload),
contentType: "application/json; charset=utf-8",
}
错误:System.String
不支持数组的序列化。
尝试2
$.ajax({
//... etc...
data: {
data: JSON.stringify(globalData),
mapping: JSON.stringify(chosenMappings),
selectedFund: $selectedFund.val()
},
contentType: "application/json; charset=utf-8",
错误:Json基元无效
您在jQuery JSON帖子中缺少内容类型:
contentType: "application/json; charset=utf-8",
检查这篇文章
http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/
想好了。。。我需要做两次JSON.stringify()
。一次在外面,一次在里面。。。
contentType: "application/json; charset=utf-8",
type: 'POST',
dataType: "json",
//data: JSON.stringify(payload),
data: JSON.stringify({
data: JSON.stringify(globalData),
mapping: JSON.stringify(chosenMappings),
selectedFund: $selectedFund.val()
}),
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- Javascript,访问一个主要对象模块模式中的每个对象
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何将javascript对象传递给webmethod
- 如何将复杂的JavaScript对象发送到WebMethod ASP.net
- 如何从静态WebMethod中引用非静态对象?- aspx, ajax
- ASP.NET WebMethod以json形式返回对象,但不在响应方法中
- WebMethod返回JSON对象问题
- 将参数作为JSON对象传递给WebMethod
- 将对象传递到具有Dictionary的WebMethod<字符串,int>参数
- WebMethod无法捕获通过ajax发送的对象
- C# WebMethod - 发送和接收与参数相同的自定义对象
- 从WebMethod (AJAX ASP.net)返回对象