json数据提取并使用ajax调用传递给C#
Posted
技术标签:
【中文标题】json数据提取并使用ajax调用传递给C#【英文标题】:json data extraction and pass to C# using ajax call 【发布时间】:2020-08-17 20:30:19 【问题描述】:我有一个从 IndexedDb 数据源获得的 json 数据。当我执行 Json.stringify 时,我得到的结果为
["key":1,"value":"itemcode":"ItemA3","serialno":"erw33","saledate":"2020-05-03","id":1,"key":2,"value":"itemcode":"ItemA4","serialno":"erewrwerwer","saledate":"2020-05-03","id":2]
我希望仅从该字符串中提取值部分并使用 ajax 调用我希望将其传输到具有数组 args 的 c# 函数。
$.ajax(
url: 'Export.aspx/GetDetails',
type: 'POST',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: "detls:" + serializedData + "",
success: function (r)
alert("yes");
,
error: function (jqXHR, textStatus, errorThrown)
alert(errorThrown);
);
c#函数是
[System.Web.Services.WebMethod]
public static string GetDetails(string [] detls)
//get itemcode , serialno , saledate , id
return "s";
我收到内部服务器错误
【问题讨论】:
【参考方案1】:使用forEach
循环提取value
。
let serializedData = [];
dataFromIndexedDb.forEach(item =>
serializedData.push(item.value);
);
alert(JSON.stringify(serializedData));
dataFromIndexedDb
是来自IndexedDb
数据源的数据。
【讨论】:
它现在返回 ["itemcode":"ItemA3","serialno":"erw33","saledate":"2020-05-03","id":1," itemcode":"ItemA4","serialno":"erewrwerwer","saledate":"2020-05-03","id":2] 但我仍然收到内部服务器错误。我希望它是因为 C# 函数 dowsnt 匹配 ajax 调用的参数。如何在 c# 中获取此字符串化数据 嗨。您可以尝试将参数更改为对象数组GetDetails(object [] detls)
。这不是解决方案,只是检查GetDetails
方法是否被调用的方法。如果可行,您可以在后面的代码中将对象转换为string
,或者再次将参数设置为string
-s 的数组并以serializedData.push(JSON.stringify(item.value));
的方式填充serializedData
。以上是关于json数据提取并使用ajax调用传递给C#的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5:在路由中获取 ajax 数据并传递给控制器
将数据传递到处理程序的 Jquery ajax 不起作用(Asp.net、C#、Jquery)