【问题标题】:Error 500 While Passing Handsontable Data into ASP.NET Function Using Ajax使用 Ajax 将 Handsontable 数据传递到 ASP.NET 函数时出现错误 500
【发布时间】:2015-03-16 10:05:02
【问题描述】:

我在使用 Ajax 将 Handsontable 数据发布到 ASP.NET 代码隐藏函数中时遇到错误 500 内部错误。我不明白我要去哪里错了。请帮忙。

我的 Ajax 代码:

function SaveData() {
            // Check What's Getting Updated
            for(var i in changedData){
                console.log(changedData[i]);
            }

            // Ajax Call
            $.ajax({
                type: "POST",
                url: "StudentHandsOn.aspx/SaveData",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                data: JSON.stringify(changedData),

                success: function (changes) {
                    console.log('Data Updated: '+changedData);
                },
                error: function (thrownError) {
                    alert("Error" + thrownError);
                }
            });
        }

我的 C# CodeBehind 是:

[WebMethod]
public static void SaveData(List<Student> students)
{
    StudentHandsOn handsOn = new StudentHandsOn();

    handsOn.displayMessage();
}

public void displayMessage()
{
    Response.Write("<script>alert('Function Called.... Working Fine ');</script>");
}

我已经使用 SaveData 中的 for 循环检查了 ChangedData 数组中的内容,并且运行良好。

["st_01", "Albert              ", 3, "CE                  ", "Angela              ", 70, 90, 90, 250, 83.33333333333333, "B    "] StudentHandsOn.aspx:218
["st_02", "Inger               ", 2, "CE                  ", "Angela              ", 67, 98, 99, 264, 88, "B    "] StudentHandsOn.aspx:218

POST http://localhost:53600/StudentHandsOn.aspx/SaveData 500(内部服务器错误)

更新:

我在代码中添加了几行:

var studentData = JSON.stringify(changedData) ;

console.log(studentData);

并将 SaveData 方法中的 Parameter 类型更改为 List。我在控制台中得到了输出。

[["st_01","Albert              ",3,"CE                  ","Angela              ",70,90,90,250,83.33333333333333,"B    "],["st_02","Inger               ",2,"CE                  ","Angela              ",67,98,99,264,88,"B    "],["st_03","Hamlet              ",1,"EE                  ","Emily               ",60,60,60,180,60,"D    "],["st_04","Jiny                ",4,"CS                  ","Vannila             ",100,80,70,250,83.33333333333333,"B    "]] StudentHandsOn.aspx:218

POST http://localhost:53600/StudentHandsOn.aspx/SaveData500(内部服务器错误)

我现在得到一个数组数组。如何将此传递给方法背后的代码?

【问题讨论】:

    标签: c# jquery asp.net ajax


    【解决方案1】:

    尝试将序列化数据代码更改为:

    data: '{"students": "' +  JSON.stringify(changedData) + '"}',
    

    【讨论】:

    • 不,@OnitCz 它不起作用,它甚至更早地尝试过。我在代码隐藏方法 (List) 中给出的参数类型有什么问题吗????
    • 对不起,错的是别的。请粘贴学生类的声明。
    • [Table("Student")] public class Student { public string Id { get;放; } 公共字符串名称 { 获取;放; } 公共 int Current_Year { 获取;放; } 公共字符串部门 { 获取;放; } 公共字符串受让人{ 得到;放; } 公共浮动 Elective_1 { 获取;放; } 公共浮动 Elective_2 { 获取;放; } 公共浮动 Elective_3 { 获取;放; } 公共浮动总结 { 得到;放; } 公共浮动平均 { 得到;放; } 公共字符串等级 { 获取;放; } }
    • 班级学生没有属性[Serializable]。
    猜你喜欢
    • 2020-08-09
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    相关资源
    最近更新 更多