Pasar ViewBag de los Valores de la maquinilla de Afeitar de la Vista al Controlador utilizando HTML.Comenzar

¿Cómo puedo pasar un valor en ViewBag al controlador a través de HTML.BeginForm()?

@using (Html.BeginForm("SaveServiceItemCategory", "Admin", 
                       FormMethod.Post, new { Sku = @ViewBag.SkuCategory  }))
{
    <span>Service Item Sku : @ViewBag.SkuCategory</span>
}

Controlador de

public ActionResult SaveServiceItemCategory(FormCollection formCollection, 
                                            string Sku)
{}

Estoy recibiendo Sku como nula, y no el valor en ViewBag.

Cómo puede ser resuelto?

InformationsquelleAutor Nanu | 2012-05-11

1 Kommentar

  1. 3

    No hay ninguna variante de BeginForm que acepta valores para ser publicado.

    La IDictionary colección de parámetro para BeginForm es para htmlAttributes. Revise su código HTML y usted probablemente verá un atributo en el formulario denominado Sku. Estos atributos no se publican en el servidor.

    Usted necesita para crear un elemento de formulario que contiene los datos a ser publicado.

    @Html.Hidden("Sku", @ViewBag.SkuCategory);
    • Esto no parece para publicar en el servidor. Sólo los elementos del modelo son la publicación.
    • Todos los campos del formulario de publicación. El cuaderno predeterminada no podría adjuntar el modelo especificado, pero verán que están disponibles en el FormCollection.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea