2011-12-01 26 views
6

Tengo un Viewbag que es una lista que estoy pasando del controlador a la vista. El Viewbag es una lista de 10 registros en mi caso. Una vez en la vista, si el usuario hace clic en guardar, me gusta pasar el contenido de la Vista al controlador [HttpPost] Create para que pueda crear registros que estén en el Viewbag. Estoy seguro de cómo hacer esto. He hecho la creación de un nuevo registro para 1 artículo, pero ¿cómo lo hago para múltiples registros?MVC Pass ViewBag al controlador

Respuesta

12

Aquí hay un ejemplo rápido del uso de ViewBag. Yo recomendaría cambiar y usar un modelo para hacer su encuadernación. Aquí hay un gran artículo sobre esto. Model Binding

Obtener Método:

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(); 
    } 

método POST

[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> 
} 
Cuestiones relacionadas