在我使用ASP.net的情况下,我的Ajax代码有什么问题?

时间:2017-10-11 09:30:27

标签: c# jquery asp.net json ajax

我有这样的数据

[{"billno":"111","amount":"2233.00"},{"billno":"222","amount":"2500.00"},{"billno":"333","amount":"3000.00"}]

我想将此记录存储在我的数据库中,所以在此之前我尝试将此记录发送到服务器

这是我的AJAX代码:

$('#btnAddVendor').click(function () {


    var values = [];

    $('table#ContentPlaceHolder1_GridView1 input.checkBoxClass:checked').each(function () {
        var $row = $(this).closest('tr').children('td');
        values.push({ 'billno': $row.eq(1).text(), 'amount': $row.eq(5).text() });
    });

    //html_data = JSON.stringify(values);

    alert(JSON.stringify(values));  // this alert will display above values

    $.ajax({
        type: 'POST',
        url: 'GPCreateCheque.aspx/setCheqVendorSearchEntry',
        data: JSON.stringify(values),
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        success: function (result) {
            alert(result.d);
        },
        error: function (result) {
                    alert("Not save");
                }
    });
})

WebMethod代码

public partial class WebForm5 : System.Web.UI.Page
{
    [WebMethod]
    public static string setCheqVendorSearchEntry(vendorEntry[] values)
    {

        //here I will write the code to store the records in database

        return "Success";  //for testing I return this string
    }
}

public class vendorEntry{
    public string billno { get; set; }
    public string amount { get; set; }
}

我不知道如何从ajax接收。感谢

更新错误消息

http://localhost:55047/GPCreateCheque.aspx/setCheqVendorSearchEntry 500 (Internal Server Error)

1 个答案:

答案 0 :(得分:1)

我终于按照以下方式运行:

您需要允许POST方法

[System.Web.Services.WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)]
public static string setCheqVendorSearchEntry(vendorEntry[] values)
{
    return "Success";  //for testing I return this string
}

和Default.aspx,你的Json数组不合适。您需要在json元素中获取参数名称(此处为'值'在setCheqVendorSearchEntry方法中)并将其作为字符串或序列化传递。

 var values = '{ "values": [{ "billno": "111", "amount": "2233.00" }, { "billno": "222", "amount": "2500.00" }, { "billno": "333", "amount": "3000.00" }] }';

                    $.ajax({
                        type: 'POST',
                        url: 'Default.aspx/setCheqVendorSearchEntry',
                        data: values,
                        contentType: 'application/json; charset=utf-8',
                        dataType: 'json',
                        success: function (result) {
                            alert(result.d);
                        },
                        error: function (result) {
                            console.log(result);
                        }
                    });

为了您的学习目的:

当您在ajax错误部分中控制错误时,您可以在浏览器控制台中找到确切错误,如下所示: 图片:https://prnt.sc/gw06sr