无法调用webmethod来保存handsonTable

本文关键字:保存 handsonTable webmethod 调用 | 更新日期: 2023-09-27 18:19:35

我想将可手动保存的数据保存到json文件中,我有一个javas script方法来从可手动保存中获取所有数据作为

 $('button[name=save]').click(function () {
            var str = handsontable.getData();
            var value = JSON.stringify(str);
            $.ajax({
                url: "WebService.asmx/getData",
                data: { 'data': value }, 
                dataType: 'json',
                contentType: 'application/json',
                type: 'POST',
                success: function (res) {
                    if (res.result == 'ok') {
                        alert('Data saved');
                    }
                    else {
                        alert('Save error');
                    }
                },
                error: function (xhr, err) {
                    alert("readyState: " + xhr.readyState + "'nstatus: " + xhr.status);
                }
            });
        });

但是我不能调用WebService.asmx/getData(列表数据)。

 public string getData(List<String> data)
{
    return "";
}

我需要传递的数据:??。。。请帮忙。

无法调用webmethod来保存handsonTable

            data: { 'data': str  }, 
            dataType: 'json',
            contentType: 'application/json',

使用contentType设置,您会告诉服务器您正在发送JSON数据,但您没有。{ 'data': str }不是JSON字符串;它是一个标准的Javascript对象文字。您正在调用默认的jQuery行为来创建HTTP请求。这意味着你正在发送一个常规的HTTP请求,类似于:

?data=thedata

要发送实际的JSON数据,需要调用JSON.stringify:

            data: JSON.stringify({ 'data': str  }), 
            dataType: 'json',
            contentType: 'application/json',

必须在方法之前写入

[WebMethod]

并将方法的参数从列表更改为字符串

然后您可以将其拆分为