2

我在这里有点束缚,我正在尝试使用 ajax 提交表单,一切顺利,花花公子,直到服务器完成它之后,它决定将操作加载到新页面上,这正是我不想要什么。

这是我的控制器

    [HttpPost]
    public ActionResult Submit(int id, string trainingProgramId, FormCollection form, User user)
    {
        //Do Some action

        return null;
    }

在另一个控制器中,我将其设置为 $return PartialView(model);

这是我正在使用的 JQuery 代码。

$(function () {
    $("form").submit(function (e) {
        if (nextquestion()) { //check if posting can proceed
            $.ajax({
                type: "POST",
                data: $(this).serialize(),
                url: $(this).attr("action"),
                success: function (response) {
                    alert(response);
                    $('#cases:last-child').insertAfter(response);
                },
                error: function (data) { }
            });
        }
        e.preventDefault();
    });
});

在所有情况下,执行操作后我都会被重定向到不同的 url。这不是意图,特别是如果我的意图可能是将更多内容加载到页面中。

我一直在尝试一切,一堆解决方案,但是一旦我的控制器执行返回语句,页面就会自动重新加载到 $/Submit

我添加了 $ @Scripts.Render(" https://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.unobtrusive-ajax.min.js "); 到我的脚本

从任何其他示例中,我发现这应该按照我的意愿工作,保持在同一页面上,但是我发现很难理解谁负责以任何方式更改页面。当我返回我的 PartialView 时,一个全新的页面加载了模型,因为我已经为最初插入的 Partial View 设置了它。

有人愿意解释发生了什么或为什么我的代码是错误的吗?

经过一整天的调试,我找不到它。

4

0 回答 0