Jquery 500(内部服务器错误)Ajax调用Web.api Post方法

Jquery 500(内部服务器错误)Ajax调用Web.api Post方法,jquery,ajax,asp.net-mvc,asp.net-web-api,Jquery,Ajax,Asp.net Mvc,Asp.net Web Api,在我的开始视图中,我有一些按钮,客户需要在其中选择他们的答案。它得到一个名为“down”的类来显示他们按下了什么。之后,他们可以按下下一步按钮。它调用一个JQuery函数来获取包含类、用户id和问题id的按钮 在本文中,我调用了一个ajax post,它将valuescontroller转到该post方法 这是JQuery函数: jQuery(function ($) { var count = 0; var answers; var buttons = new Array(); var id

在我的开始视图中,我有一些按钮,客户需要在其中选择他们的答案。它得到一个名为“down”的类来显示他们按下了什么。之后,他们可以按下下一步按钮。它调用一个JQuery函数来获取包含类、用户id和问题id的按钮

在本文中,我调用了一个ajax post,它将valuescontroller转到该post方法

这是JQuery函数:

jQuery(function ($) {
var count = 0;
var answers;
var buttons = new Array();
var id = $(document.getElementsByName('id').valueOf());
var user = $(document.getElementsByName('user').valueOf());

$('#nextBtn').click(function ()
{
    $('.buttons').find('input[type="button"]').each(function ()
    {
        count++;
        buttons.push($(this).valueOf());
    });
    answers.push(id.attr('value'));
    answers.push(user.attr('value'));
    for (var i = 0; i < count; i++)
    {
        if (buttons[i].hasClass('down'))
        {
            answers.push(buttons[i].attr('value'));
        }
    }

    for (var i = 0; i < answers.length; i++) {
        console.log(answers[i]);
    }

       $.ajax({
                url: '/Home/Start/api/Values',
                type: 'POST',
        data: JSON.stringify(answers),
        contentType: "application/json;charset=utf-8",
        succes: function (data) {
            alert("worked!");
        },
        error: function (data) {
            alert("failed!");
        }
       });
    });
});
还有start.cshtml

    <html lang="en">
     <head>
    <meta charset="utf-8">
    <title></title>
    <link rel="stylesheet"     href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
    <script src="//code.jquery.com/jquery-1.10.2.js"></script>
    <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
</head>
     <body>
       @{
          ViewBag.Title = "Enquête";
          int main = ViewBag.main;
          int extra = ViewBag.extra;
       }

       <div class="main">
        @foreach (var item in Model)
          {
           ViewBag.counter = @item.Id;
            var counter = @item.Id;


    <div class="container-fluid">
        <div class="jumbotron">
            <h1>@item.Category.Name </h1>

            <div class="progress " >
                <div class="progress-bar progress-bar-success" id="determinate"></div>
            </div>

            <script>
                updateProgress(@item.Id, @ViewBag.length);   //Update the progressbar
            </script>


            <p>@item.Text </p>
            <img src="data:image/jpg;base64,@item.Picture" alt="test" />
        </div>

        <script>
            assignAnswers(@main, @extra);
        </script>

        <form>
            <div class="buttons" >
                <div id="answers">
                    <input id="a1" type="button" class="button mainQuestion noExtraQuestion" value="Verloopt naar wens" />
                    <input id="a2" type="button" class="button mainQuestion noExtraQuestion" value="Probleem - &#x00A;niet hinderlijk" />
                    <input id="a3" type="button" class="button mainQuestion" value="Probleem - &#x00A;hinderlijk voor cliënt" />
                    <input id="a4" type="button" class="button mainQuestion" value="Probleem - &#x00A;hinderlijk voor mantelzorger" />
                    <input id="a5" type="button" class="button mainQuestion" value="Probleem - &#x00a;hinderlijk voor beide" />
                    <input name="id" type="hidden" value="@ViewBag.counter" />
                    <input name="user" type="hidden" value="@ViewBag.user"/>
                </div>
                <div class="buttons" id="extraAnswers">
                    <p>Wilt u hier hulp bij?</p>
                    <input id="eA1" type="button" class="z-depth-2 button extraQuestion" value="Ja" />
                    <input id="eA2" type="button" class="z-depth-2 button extraQuestion" value="Nee" />
                </div>

                <div id="navButtons">
                    <input type="button" id="prevBtn" class="navButton" value="Vorige" onclick="location.href='@Url.Action("Start", "Home", new { Id = ViewBag.counter - 1, userID = ViewBag.user })'" />
                    <input type="button" id="nextBtn" class="navButton disabled" value="Volgende" onclick="location.href='@Url.Action("Start", "Home", new { Id = ViewBag.counter + 1, userID = ViewBag.user })'" disabled /> <!--Standard disabled untill questions and-->
                </div>
            </div>
        </form>



    </div>
    <script>
        disablePrev(@item.Id);   //disable prev button if first question
    </script>
}
</div>
</body>
</html>
我希望这是关于我问题的足够信息,这是我第一次在这里提出问题


如果您需要更多信息/代码,请告诉我。

试试这个@Shaunak D。问题解决了,我对表格答案的长度做了错误检查,它试图在现有ID的表格中添加新行。感谢您的快速回复:D
    <html lang="en">
     <head>
    <meta charset="utf-8">
    <title></title>
    <link rel="stylesheet"     href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
    <script src="//code.jquery.com/jquery-1.10.2.js"></script>
    <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
</head>
     <body>
       @{
          ViewBag.Title = "Enquête";
          int main = ViewBag.main;
          int extra = ViewBag.extra;
       }

       <div class="main">
        @foreach (var item in Model)
          {
           ViewBag.counter = @item.Id;
            var counter = @item.Id;


    <div class="container-fluid">
        <div class="jumbotron">
            <h1>@item.Category.Name </h1>

            <div class="progress " >
                <div class="progress-bar progress-bar-success" id="determinate"></div>
            </div>

            <script>
                updateProgress(@item.Id, @ViewBag.length);   //Update the progressbar
            </script>


            <p>@item.Text </p>
            <img src="data:image/jpg;base64,@item.Picture" alt="test" />
        </div>

        <script>
            assignAnswers(@main, @extra);
        </script>

        <form>
            <div class="buttons" >
                <div id="answers">
                    <input id="a1" type="button" class="button mainQuestion noExtraQuestion" value="Verloopt naar wens" />
                    <input id="a2" type="button" class="button mainQuestion noExtraQuestion" value="Probleem - &#x00A;niet hinderlijk" />
                    <input id="a3" type="button" class="button mainQuestion" value="Probleem - &#x00A;hinderlijk voor cliënt" />
                    <input id="a4" type="button" class="button mainQuestion" value="Probleem - &#x00A;hinderlijk voor mantelzorger" />
                    <input id="a5" type="button" class="button mainQuestion" value="Probleem - &#x00a;hinderlijk voor beide" />
                    <input name="id" type="hidden" value="@ViewBag.counter" />
                    <input name="user" type="hidden" value="@ViewBag.user"/>
                </div>
                <div class="buttons" id="extraAnswers">
                    <p>Wilt u hier hulp bij?</p>
                    <input id="eA1" type="button" class="z-depth-2 button extraQuestion" value="Ja" />
                    <input id="eA2" type="button" class="z-depth-2 button extraQuestion" value="Nee" />
                </div>

                <div id="navButtons">
                    <input type="button" id="prevBtn" class="navButton" value="Vorige" onclick="location.href='@Url.Action("Start", "Home", new { Id = ViewBag.counter - 1, userID = ViewBag.user })'" />
                    <input type="button" id="nextBtn" class="navButton disabled" value="Volgende" onclick="location.href='@Url.Action("Start", "Home", new { Id = ViewBag.counter + 1, userID = ViewBag.user })'" disabled /> <!--Standard disabled untill questions and-->
                </div>
            </div>
        </form>



    </div>
    <script>
        disablePrev(@item.Id);   //disable prev button if first question
    </script>
}
</div>
</body>
</html>
POST http://hostingwebsite/Home/Start/api/Values 500 (Internal Server Error)
n.ajaxTransport.k.cors.a.crossDomain.send @ jquery-2.1.1.min.js:4
n.extend.ajax @ jquery-2.1.1.min.js:4
(anonymous function) @ functions.js:92  ==> this points to the ajax call
n.event.dispatch @ jquery-2.1.1.min.js:3
n.event.add.r.handle @ jquery-2.1.1.min.js:3