Este es mi punto de Vista Código:

@using(Html.BeginForm(new { SelectedId = /*SelectedValue of DropDown*/ })) {

 <fieldset>

     <dl>
       <dt>
           @Html.Label(Model.Category)
       </dt>
       <dd>
        @Html.DropDownListFor(model => Model.Category, CategoryList)
       </dd>
    </dl>

 </fieldset>
 <input type="submit" value="Search" />


}

Como muestra el código que necesito pasar el dropdown valor seleccionado para la acción en BeginForm() Html helper. ¿Cuál es tu sugerencia?

  • ¿Cómo se sabe el valor seleccionado en tiempo de render?
  • Esa es mi pregunta, si no cualquier respuesta
InformationsquelleAutor Saeid | 2012-04-17

1 Comentario

  1. 14

    El valor seleccionado será aprobada cuando el formulario es enviado, porque la lista desplegable está representado por un <select> elemento. Usted sólo tendrá que adaptar su modelo de vista por lo que tiene una propiedad llamada SelectedId por ejemplo a la que se le unen a la lista desplegable:

    @using(Html.BeginForm() )
    {
        <fieldset>
            <dl>
                <dt>
                    @Html.LabelFor(x => x.SelectedId)
                </dt>
               <dd>
                    @Html.DropDownListFor(x => x.SelectedId, Model.CategoryList)
               </dd>
            </dl>
        </fieldset>
    
        <input type="submit" value="Search" />
    }

    Se supone que el siguiente modelo de vista:

    public class MyViewModel
    {
        [DisplayName("Select a category")]
        public int SelectedId { get; set; }
    
        public IEnumerable<SelectListItem> CategoryList { get; set; }
    }

    que va a ser manejado por el controlador:

    public ActionResult Index()
    {
        var model = new MyViewModel();
        //TODO: this list probably comes from a repository or something
        model.CategoryList = new[]
        {
            new SelectListItem { Value = "1", Text = "category 1" },
            new SelectListItem { Value = "2", Text = "category 2" },
            new SelectListItem { Value = "3", Text = "category 3" },
        };
        return View(model);
    }
    
    [HttpPost]
    public ActionResult Index(MyViewModel model)
    {
        //here you will get the selected category id in model.SelectedId
        return Content("Thanks for selecting category id: " + model.SelectedId);
    }

Dejar respuesta

Please enter your comment!
Please enter your name here