1

検索に使用される Asp.net MVC 部分ビューがあります。結果を取得するために Ajax 呼び出しを行います。結果が取得されて結果ペインに表示されると、ユーザーは任意の結果行のリンクをクリックして、検索結果の 1 つを選択できます。ユーザーがリンクをクリックして検索結果の 1 つを選択すると、状態を更新するために Ajax ポスト要求が行われます。この Ajax 呼び出しが完了したら、別のページにリダイレクトする必要がありますが、宛先ページはユーザーがどのページにいるかによって異なります。この検索部分ビューは複数のページでホストされ、リダイレクトの場所はホスト ページごとに異なります。意味があり、部分ビューをホスティングページに過度に結合しない(またはその逆)方法は考えられません。

別のオプションは、選択 Ajax 呼び出しが完了したら別のページにリダイレクトすることかもしれませんが (これが最終的な目標です)、Ajax 呼び出し内のリダイレクト結果は飲み込まれませんか?

または、代わりに各行にボタンまたはリンクを配置して、呼び出し元のページに基づいた宛先で、リダイレクト結果を返す可能性のある投稿要求を発生させる方法はありますか?

4

1 に答える 1

1

私はこれを機能させるために一種のTemplateMethodパターンを使用することになりました。私のパーシャルでは、JavaScript関数を追加しました:

function onActionCompleted() {
    DoSomethingLocal();
    if (typeof DoSomethingInParentPage == 'function') {
        DoSomethingInParentPage();
    }
} 

これは、関数が存在して関数であるかどうかを確認し、存在する場合は関数を呼び出します。これが機能するために、ホスティングページは、アクションがパーシャルで完了したときにアクションを完了するためにメソッドDoSomethingInParentPageを実装することを選択できます。パラメータが一致するかどうかを確認する方法はわかりませんが、少なくともパーシャルが作業を終了したときに呼び出しがあります。

于 2009-07-22T19:31:06.523 に答える