2012-04-26 11 views
0

私はmvcを使用してエントリフォームをdevlopingしています。私は多くのテキストボックス、ラジオボタン、lablesを持っています。ビューからコントローラにデータをポストバックしながら、入力されたデータを失います。すべてのポストバックに対してこれを保持する方法は?デフォルトではどのMVC機構も使用可能ですか?これは、いくつかのプロパティを有効にすることによって、mvcに状態を単独で処理するように指示するのでしょうか?MVC 3の状態を維持する

私はviewdataオブジェクトを表示するのに興味がありません。ただし、mvc3で使用できるデフォルトのメカニズムは何ですか?

更新:

@using (Html.BeginForm()) 
{ 
<table> 
    <tr> 
     <td> 

      @Html.TextBox("txtTitle") 
@Html.CheckBox("chkOption") 
     </td> 
     <td>    
      @Html.TextBox("txtDetails") 
@Html.DropDownList("drpList") 
     </td> 
     <td> 
      <input type="submit" value="Cancel" name="action" /> 
      <input type="submit" value="Create" name="action" /> 

     </td> 
    </tr> 
</table> 
} 

どのようにすべてのポストバックのために入力され、選択した値の状態を維持するには?

+1

お試しのコードで質問を更新できますか?例えばコントローラとビュー?相対的な部分だけ。 –

答えて

1

あなたがModelを作成し、モデルの性質上、代わりに@Html.TextBoxFor()@Html.CheckBoxFor()@Html.DropdownListFor()メソッドを使用する必要があるように見えます。

これで、[HttpPost]属性でモデル化され、同様にパラメータとして修飾された同様の名前のアクションメソッドが作成されます。したがって、フォームの送信が試行されたときに検証を実行し、フォームの状態が有効な場合はモデルを処理できます。

強く型付けされたビューやモデルを調べて、いくつかのオンラインチュートリアルを調べることにします。

以下に含まれるリンクは、数ページの長さですが、始めるために必要なすべてを理解しておくとよいチュートリアルです。

http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/cs/intro-to-aspnet-mvc-3

+0

しかし、私はしっかりとどのモデルとも結合すべきではありません。したがって、モデルを使用せずにポストバック間で状態を維持する方法はありますか? –

+0

ビューモデルとは、ビューに必要なデータを提供してバインドする唯一の目的のオブジェクトグラフです。これはMVCデザインでは完全に問題なく、既存のドメインモデル/エンティティには影響しません。そうでなければ、 'Session'を使って行くべきでしょう。しかし、MVCの良さに欠けているでしょう。 –

2

Sessionを使用すると、複数のポストバックにわたって状態を保持できます。

関連する問題