0

4つの部分ビューがあるダッシュボードページがあります。各ビューには編集リンクがあり、クリックすると別のテマプレートが読み込まれます。

もちろん、新しいテンプレートには保存とキャンセルがあります。[キャンセル]をクリックすると古いビューが読み込まれ、[保存]をクリックするとモデルが保存されて古いビューに戻ります。

これはすべて部分的な更新である必要があります。どうすればこれを達成できますか。

まず、ajaxアクションリンク(postを使用)を使用して、日時文字列を返します。divを更新する代わりに、別のビューにリダイレクトされます。MVCは途方もなく難しいです。は...

4

1 に答える 1

1

ああ..物事を行うためのクリーンな方法を確立すると、MVCは簡単です:)

つまり、各ダッシュボードには 4 つのパーシャルがあります。1 つのオプションとして、メイン ページに 4 つの div を設定します。各 div 内で、Html.Partial を使用してビューをレンダリングします。各部分ビューには、独自の Ajax.BeginForm タグがあります。UpdateTargetId は、親ビューの div ID です。私は、更新する親の名前を知る必要がある子供の大ファンではありません。他にもいくつかの方法があります (1 つのオプションは、4 つのビューのそれぞれが、実際にはそれぞれに 2 つの他のビューです。1 つはフォームを含むものです)。更新された div と、次のような部分ビューへの呼び出し:

各「親」部分ビューには、たとえば

<div id='divAddressEdit'>
@using (Ajax.BeginForm("action","controller", new AjaxOptions() { UpdateTargetId = "divAddressEdit", InsertionMode = InsertionMode.Replace }){
@Html.Partial(....)
}
</div>

各部分ビューに独自の ajax フォームが含まれる最初のオプションを使用するとします。したがって、ユーザーが保存すると、わかりました.. ajaxフォームがポストバックし、 RedirectsToAction() して新しいコンテンツを再度レンダリングします。キャンセルをクリックすると、同じことが発生します。フォームが投稿され、元の情報が再読み込みされます。

ここで重要なのは ajax フォームです。私はここに多くのコードを含めていないことを知っています-あなたの投稿はより概念的な質問であると信じています-それが意味をなさない場合は、特定のサンプルを投稿します.

于 2011-05-30T05:53:48.860 に答える