【问题标题】:json data extraction and pass to C# using ajax calljson数据提取并使用ajax调用传递给C#
【发布时间】: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";
}

我收到内部服务器错误

【问题讨论】:

    标签: c# asp.net json ajax indexeddb


    【解决方案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
    猜你喜欢
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-04
    • 2019-01-27
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    相关资源
    最近更新 更多