2011-12-01 13 views
6

私はコントローラからビューに渡すリストであるViewbagを持っています。 Viewbagは私の場合の10個のレコードのリストです。一度ビューに入ると、ユーザーが保存をクリックすると、ビューのコンテンツを[HttpPost] Createコントローラに渡して、Viewbagにあるレコードを作成できるようにします。私はこれをどうやって行うのか確信しています。私は1項目の新しいレコードを作成しましたが、複数のレコードに対してはどのようにしますか?MVC ViewBagをコントローラに渡す

答えて

12

ここでは、ViewBagを使用する簡単な例を示します。私はあなたのバインディングを行うためにモデルを切り替えて使用することをお勧めします。ここには素晴らしい記事があります。 Model Binding

入手方法:

public ActionResult Index() 
    { 
     ViewBag.Message = "Welcome to ASP.NET MVC!"; 
     List<string> items = new List<string>(); 
     items.Add("Product1"); 
     items.Add("Product2"); 
     items.Add("Product3"); 

     ViewBag.Items = items; 
     return View(); 
    } 

ポストメソッド

[HttpPost] 
    public ActionResult Index(FormCollection collection) 
    { 
     //only selected prodcuts will be in the collection 
     foreach (var product in collection) 
     { 

     } 
     return View(); 
    } 

HTML:

@using (Html.BeginForm("Index", "Home")) 
{ 
    foreach (var p in ViewBag.Items) 
    { 
     <label for="@p">@p</label> 
     <input type="checkbox" name="@p" /> 
    } 

    <div> 
    <input id='btnSubmit' type="submit" value='submit' /> 
    </div> 
} 
関連する問題