1

コントローラーにajaxのアクション呼び出しがあります。データベースが更新され、正常に完了した後、次のように実行できます。

return PartialView("Overview", mydatamodel);

そして、このようにすることに成功しました:

success: function (data) { 
            // do something with the data => refresh some
            // portion of your DOM
            $('#someDivId').html(data);
        }

正常に動作しますが、必要なのは、ビューモデルのコレクションを更新し、ビュー全体を新しいデータで再度レンダリングすることです。

たとえば、送信ボタンがある場合は、ビュー全体が新しいデータで更新されますが、ajax呼び出しがある場合は、どうすればよいですか。

これが私の以前の投稿へのリンクです。詳細は次 のとおりです。送信後に新しいモデルデータを受信するMVC3

前もって感謝します!

4

2 に答える 2

3

ビュー全体を更新する場合は、AJAXを使用しないでください。送信ボタンを使用するだけです。AJAXの要点は、現在のページから移動せずにビューの一部のみを更新することです。

ちなみに、次を使用してクライアント側でリダイレクトできますwindow.location.href

success: function (data) { 
    window.location.href = '@Url.Action("Overview", "SomeController")';
}

ただし、成功したAJAXコールバックで常にリダイレクトする場合は、実際にそれを行う必要はありません。このシナリオではAJAXを使用しないでください。

于 2012-08-07T16:27:40.283 に答える
1

通常、リクエストの完了後にビューの一部のみを更新する必要がある状況では、AJAXを正確に使用します。

何らかの理由で、そのような場合でもAJAXを使用する必要がある場合(たとえば、DELETEHTTP動詞を使用してリクエストを送信する場合)、次のようなことを行うことができます。

window.location.href = '/Items/123';

successコールバック関数で、ページ全体の更新を効果的にトリガーします。

于 2012-08-07T16:31:00.617 に答える