我使用jQuery Ajax通过以下代码传递给ASP.NET WebMethod:
$.ajax({
type: 'POST',
url: 'Page.aspx/generateReport',
data: {columnList:columnList, gridArrayList: JSON.stringify(gridArrayList) },
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: true,
cache: false,
});
columnList 是一个单字符串变量, gridArrayList 是像
这样的对象的arraryvar gridArrayList = [{id:1,value:"val1"},{id:2,value:"value2"},{id:3,value:"value3"}]
WebMethod
public static void generateReport(string columnList, List<dataReportEpad> gridArray)
我收到以下错误:
ExceptionType
"System.ArgumentException"
信息 &#34;无效的JSON原语:columnList。&#34;
栈跟踪 &#34; System.Web.Script.Serialization.JavaScript上的System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()处于System.Web.Script.Serialization.JavaScript上的System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32深度).SvaricDeserialize(String输入序列化器)
任何人都可以帮助我?
答案 0 :(得分:0)
你发送的不是json它的url编码形式数据,发送json你必须传递一个json字符串作为数据。
data: JSON.stringify({columnList:columnList, gridArray: gridArrayList }),
答案 1 :(得分:0)
也许你可以尝试这样的事情:
使用Javascript:
var obj = { 'columnList': columnList, 'gridArrayList': gridArrayList };
//where columnList is a string and gridArrayList is an array of objects
$.ajax({
type: 'POST',
url: 'Page.aspx/generateReport',
data: JSON.stringify(obj),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: true,
cache: false,
});
代码背后:
[WebMethod()]
public static string generateReport(string columnList, ArrayList gridArrayList) {