2011-01-05 14 views
0

jqueryタブがロードされたインデックスページがあります。タブの1つでは、部分的な表示company.ascxを開きます。その中に私は2 RenderActionsを持っています.1つは会社のヘッダーをロードし、もう1つはブランチ情報をロードします。 BranchListjqueryダイアログ内の部分的なビューからアクションをポストする

<% Html.RenderAction("Compheader", "Home"); %> 
<br /> 
<br /> 
<% Html.RenderAction("BranchList", "Branch", new { Id = Request.QueryString[0], pdate = Request.QueryString[1] }); %> 

私はそれに関連する削除ボタンをそれぞれ有する枝のテーブルを表示します。ブランチリストには追加ボタンもあります。これらのボタンは両方とも、jqueryダイアログを開いて部分ビュー(acsx)を開きます。これらのダイアログには投稿の投稿があります。

挿入/追加または削除ビューでサブミットをクリックすると、BranchListアクションをリフレッシュできるようにしたいと考えています。これにより、新しいブランチリストが取得され、表示されます。

今すぐ削除または挿入内の投稿には、ページ全体を更新するインデックスページにリダイレクトします。応答のリダイレクトの代わりに、Html.BeginFormとajax投稿を使用して、これをどのように達成できるか教えてください。

答えて

0

あなたはビュー内で直接QueryStringにアクセスしています。つまり、あなたはASP.NET MVCフレームワークのどれも使用していません。アクションメソッドのコンストラクタでQueryString変数として一致するパラメータ名を使用してアクションメソッドでこれらの値を取得し、アクションメソッドからこれらの値を(ビューモデルまたはViewDataを使用して)ビューに渡す必要があります。ビュー内のQueryStringに直接アクセスします。

あなたの質問には、私はあなたが正しくやっていると思います。アプリケーションから適切な動作を得ようとしている場合は、アプリケーションのポストリダイレクト動作を変更しないでください。

部分ビューからデータを転記し、リダイレクトしています。これはGPG(Get、Post、Get)パターンとも呼ばれる有効なパターンです。これは、ページをリフレッシュする場合にユーザーが同じデータを2回投稿することを避けるため、単に「投稿済み」ページにユーザーを送信するのに比べて有利です。

希望します。

関連する問題