Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 页面方法的jquery调用失败_C#_Jquery - Fatal编程技术网

C# 页面方法的jquery调用失败

C# 页面方法的jquery调用失败,c#,jquery,C#,Jquery,我试图使用jquery调用page方法将HTML表中的数据保存到数据库中。 但是,jquery调用失败,出现:500内部服务器错误。。 有什么建议吗 <input id="save" type="button" value="Save data" /> 代码如下: <input id="save" type="button" value="Save data" /> 脚本: $(document).ready(function() {

我试图使用jquery调用page方法将HTML表中的数据保存到数据库中。 但是,jquery调用失败,出现:500内部服务器错误。。 有什么建议吗

    <input id="save" type="button" value="Save data" />
代码如下:

    <input id="save" type="button" value="Save data" />
脚本:

    $(document).ready(function() {


        $("#save").click(function(event) {

            var i = 0;
            var inputs = new Array();
            $("#tbNames").find("input").each(function() {         
                inputs[i] = [this.id, this.value];
                i++;
            });

            var columnsCount = 2;
            $.ajax({

                type: "POST",
                url: "Default2.aspx/Save",
                contentType: "application/json; charset=utf-8",
                data: "{inputs: inputs, columnsCount: columnsCount}",
                dataType: "json",
                success: AjaxSucceeded,
                 error: AjaxFailed
            });
        });
        function AjaxSucceeded(result) {
            alert(result.d);
        }

        function AjaxFailed(result) {
            alert(result.status + ' ' + result.statusText);
        }

    });



    </script>
    <input id="save" type="button" value="Save data" />

    <input id="save" type="button" value="Save data" />
$(文档).ready(函数(){
$(“#保存”)。单击(函数(事件){
var i=0;
var输入=新数组();
$(“#tbNames”).find(“input”).each(function(){
输入[i]=[this.id,this.value];
i++;
});
var columnsCount=2;
$.ajax({
类型:“POST”,
url:“Default2.aspx/Save”,
contentType:“应用程序/json;字符集=utf-8”,
数据:“{inputs:inputs,columnsunt:columnsunt}”,
数据类型:“json”,
成功:阿贾克斯成功了,
错误:ajax失败
});
});
函数AjaxSuccessed(结果){
警报(结果d);
}
函数ajax失败(结果){
警报(result.status+''+result.statusText);
}
});
HTML:

    <input id="save" type="button" value="Save data" />
名称 任务 删除

    <input id="save" type="button" value="Save data" />

    <input id="save" type="button" value="Save data" />
和页面方法的C#代码:

    <input id="save" type="button" value="Save data" />
 [WebMethod ()]
    public static List<Hashtable> ParseJson(string[] array, int rowsCount)
    {
    var result = new List<Hashtable>();

    List<string[]> list = new List<string[]>();
    foreach (var item in array)
    {
        int comma = item.IndexOf(',');
        list.Add(new string[] { item.Substring(0, comma), item.Substring(comma + 1) });
    }

    int i = 0;
    while (i < list.Count)
    {
        var dict = new Hashtable();
        int j = i + rowsCount;
        for (; i < j; i++)
        {
            dict.Add(list[i][0], list[i][1]);
        }

        result.Add(dict);
    }

    return result;

}

[WebMethod()] 
public static string Save(string[] inputs, int columnsCount)
{
    List<Hashtable> r = ParseJson(inputs, columnsCount);

    List<TestClass> listOfTasks = new List<TestClass>();
    foreach (var item in r)
    {
        TestClass tc = new TestClass();
        tc.name  = (string)item["name"];
        tc.task = (string)item["task"];

        listOfTasks.Add(tc);
    }

    DBManager dbm = new DBManager();
    string actionResult = dbm.SaveData(listOfTasks);
    if (actionResult == String.Empty)
    {
        return "Saved!";
    }
    else
    {
        return actionResult;
    }
}
[WebMethod()]
公共静态列表ParseJson(字符串[]数组,int rowsCount)
{
var result=新列表();
列表=新列表();
foreach(数组中的变量项)
{
int逗号=item.IndexOf(',');
添加(新字符串[]{item.Substring(0,逗号),item.Substring(逗号+1)});
}
int i=0;
而(i
500是一般性错误。JQuery使用的Web服务有问题。您需要查看服务编写的日志以找出错误所在,或者您应该在服务代码中设置一个断点来调试它。

关键是json2.js及其stringify函数。在实现了该函数的AJAX调用之后
    <input id="save" type="button" value="Save data" />
看起来像这样:

    <input id="save" type="button" value="Save data" />
$.ajax({ type: "POST",
         url: "Default2.aspx/Save",
         contentType: "application/json; charset=utf-8",
         data: "{'inputs':" + JSON.stringify(inputs) + ",'columnsCount':1 }",
         dataType: "json",
         success: AjaxSucceeded,
         error: AjaxFailed
});
.

未命中C#Save()函数的断点。因此,调用page方法似乎是失败的。在同一个页面上,我放置了一个“hello world”按钮,该按钮也调用page方法,并且工作正常。错误发生在:$.ajax({type:“POST”,url:“Default2.aspx/Save”,contentType:“application/json;charset=utf-8”,数据:“{inputs:inputs,columnsunt:columnsunt}”,数据类型:“json”,成功:ajaxSuccessed,错误:AjaxFailed});
    <input id="save" type="button" value="Save data" />