在Http Post请求失败后返回部分视图

时间:2013-11-24 11:33:33

标签: c# javascript asp.net ajax asp.net-mvc

在Ajax Post Request之后调用Submit Action时。它返回值为“Bad Request”的错误方法。为什么不成功?如何解决这个问题?

Ajax请求:

<p>
    @using (Html.BeginForm("Submit", "Test"))
    {
        <span>
            Price: @Html.TextBox("Price", string.Empty)
        </span>

        <input id="submit" type="submit" value="test" />
    }
</p>

<div id="testPost">

</div>

        @section Scripts {
        <script type="text/javascript">
            $(function () {
                $('#submit').on("click", function () {

                    var form = $(this).parent("form");

                    $.ajax({
                        type: "POST",
                        url: form.attr('action'),
                        data: form.serialize()
                    })
                        .success(function (html) {

                            $('#testPost').replaceWith(html);

                            alert("Success");
                        })
                        .error(function () {
                            alert("Bad Request");
                        });

                    return false;
                });
            });
        </script>
        }

提交行动:

 [HttpPost]
        public ActionResult Submit(Auction auction)
        {
            return PartialView("_CurrentPrice",auction);
        }

部分视图:

<p class="current-price">
    <h2>ACTIVE HERE</h2>
</p>

3 个答案:

答案 0 :(得分:1)

问题得到解决。部分视图不在Shared文件夹中。

答案 1 :(得分:0)

请尝试这个,并告诉我们这是否有效..

$.ajax({
                    type: "POST",
                    url: "/test/submit",
                    data: form.serialize()
                })

注意:应该有一个受控制的名为“TestController”和一个名为“Submit”的动作,你已经拥有......

如果这样可行,请输入console.log(form.attr(“action”))并查看返回值是什么......

答案 2 :(得分:0)

您应该使用firebug并将对象arguments[0]和属性arguments[0].responseText检入错误方法。它有助于了解服务器返回错误的原因。

或尝试 -

.error(function () {
$.('body').html(arguments[0].responseText);
}

并检查名称Partial View。它必须等于“_ CurrentPrice”