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 にリダイレクトされます。特に私の意図がより多くのものをページにロードすることである場合、これは意図ではありません。

私はすべて、一連のソリューションを試してきましたが、コントローラーが return ステートメントを実行すると、ページは自動的に $/Submit にリロードされます

$ @Scripts.Render(" https://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.unobtrusive-ajax.min.js ");を追加しました。私のスクリプトに

他の例から、これは同じページにとどまることで、希望どおりに機能するはずですが、どちらの方法でもページを変更する責任者を理解するのが難しいと感じています。PartialView を返すと、最初に Partial View を挿入するように設定したため、完全に新しいページがモデルと共に読み込まれます。

何が起こっているのか、なぜ私のコードが間違っているのかを説明したい人はいますか?

丸一日デバッグしようとしても見つかりません。

4

0 に答える 0