none
DropDowList, tomar id RRS feed

  • Pregunta

  • Hola

    Estoy trabajando con ASP.NET MVC 5 ¿Como puedo tomar el valor del Id al seleccionar un Item del DropDowList?

    Mi código es el siguiente:

    Controller

    public ActionResult Create()
            {
                var proveedor = SdProveedor.ListaTipoDocumentoIdentidad();
                ViewBag.ListaProveedores = new SelectList(proveedor, "Id", "Descripcion");
    
                var model = new ProveedorDto();
                return View(model);
            }
    
            // POST: Proveedor/Create
            [HttpPost]
            public ActionResult Create(ProveedorDto entity)
            {
                try
                {
                    if (ModelState.IsValid)
                    {
                        var proveedor = SdProveedor.ListaTipoDocumentoIdentidad();
                        ViewBag.ListaProveedores = new SelectList(proveedor, "Id", "Descripcion");
    
                        SdProveedor.Create(entity);
                        return RedirectToAction("Index");
                    }
                    else
                        return View(entity);
                }
                catch
                {
                    return View(entity);
                }
            }

    Models

    <div class="form-group">
                @Html.LabelFor(model => model.DocumentoIdentidad, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.DropDownList("myDropDown", (SelectList)ViewBag.ListaProveedores)
                </div>
            </div>

    Necesito crear un evento para tomar el id de un item que seleccione?


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú


    jueves, 19 de enero de 2017 2:44

Respuestas

  • hola

    >>Necesito crear un evento para tomar el id de un item que seleccione?

    en mvc no existen los eventos, tienes que realizar un post al action Create para que el modelbinding asigne el valor a la propiedad

    pero tienes que usar

    @Html.DropDownListFor(x=> x.ProveedorId, (SelectList)ViewBag.ListaProveedores)

    en el ProveedorDto tienes qie definir una propiedad que asigne el valor al combo y que ademas defina el nombre con el cual va a mapear cuando vuelva

    recuerda que modelbinding buscara coincidencias entre el name del control y la propiedad del model que define el action si hya coincidencia asignara el valor

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Propuesto como respuesta Willams Morales jueves, 19 de enero de 2017 18:33
    • Marcado como respuesta Pedro Ávila jueves, 19 de enero de 2017 19:07
    jueves, 19 de enero de 2017 10:48