部分ビューでAJAXコールが完了したときに、ホストMVCページでJavaScriptを呼び出すにはどうすればよいですか?
-
16-09-2019 - |
質問
検索に使用されるASP.NET MVC部分ビューがあります。結果を取得するためにAJAX呼び出しを行います。結果が取得され、結果ペインに表示されると、ユーザーは結果行のいずれかのリンクをクリックして、検索結果のいずれかを選択できます。ユーザーがリンクをクリックして検索結果のいずれかを選択すると、Ajax POSTリクエストが作成され、状態が更新されます。このAJAXコールが完了したら、別のページにリダイレクトする必要がありますが、宛先ページはユーザーがオンのページに依存します。この検索部分ビューは複数のページでホストされ、リダイレクトの場所はホストページごとに異なります。理にかなっているこれを行う方法は考えられず、ホスティングページ(またはその逆)の部分的なビューを過度に結合しないことは考えられません。
他のオプションは、選択Ajaxコールが完了したら別のページにリダイレクトすることであると思います(これは最終的には目標です)が、Ajaxコール内のリダイレクト結果は飲み込まれませんか?
または、通話ページに基づいて宛先を使用して、リダイレクト結果を返す可能性のあるPOSTリクエストを発生させる代わりに、各行にボタンまたはリンクを使用する方法はありますか?
解決
最終的には、一種のTemplateMethodパターンを使用して、この作業を行いました。私の部分的に、私はJavaScript関数を追加しました:
function onActionCompleted() {
DoSomethingLocal();
if (typeof DoSomethingInParentPage == 'function') {
DoSomethingInParentPage();
}
}
これにより、関数が存在し、関数であるかどうか、およびそれが関数を呼び出すかどうかを確認します。これが機能するためには、ホスティングページは、部分的にアクションが完了したときにアクションを完了するために、メソッドdosomethinginparentPageを実装することを選択できます。パラメーターの一致を確認する方法はわかりませんが、少なくとも、部分的な作業が終了したときに電話がかかります。