Estoy teniendo problemas con este cuadro desplegable, solo puedo parecer para obtener el derecho, aquí está el código:

Vista (Índice.cshtml):

@using EvaSimulator.Models
@Model EvaSimulator.Models.ModelVariables
@{
    ViewBag.Title = "Index";
    ModelVariables mv = new ModelVariables();
}
@using (Html.BeginForm("DropDownBox", "Home", FormMethod.Get))
{
    @Html.DropDownList("dropdownbox", )
    <button type="submit"></button>
}
<p>@Model.dropDownList</p>

Modelo (ModelVariables.cs):

public string dropDownList = "";

(Controlador HomeController.cs):

public ActionResult DropDownBox(string dropdownbox)
{
    ModelVariables mv = new ModelVariables();
    mv.dropDownList = dropdownbox;
    return this.View("Index", mv);
}

Esto sólo doesent mirar a la derecha, y yo sólo estoy buscando una solución sencilla, crear un menú desplegable de selección múltiple cuadro de lista y lo puedo enviar, me sale la lista de valores y de impresión en <p> etiqueta en la vista (@Model.dropDownList)

InformationsquelleAutor | 2016-05-18

2 Comentarios

  1. 4

    Primero debe agregar una nueva propiedad a la vista de la clase del modelo de la lista desplegable de datos de tipo IEnumerable<SelectListItem>. Vamos a añadir una segunda propiedad de tipo array(ya que quieres una selección múltiple) para tener la opción seleccionada valores .

    public class ModelVariables
    {
      public IEnumerable<SelectListItem> Options {set;get;}
      public string[] SelectedOptions { set;get;}
    }

    Ahora en su CONSEGUIR la acción, crear un objeto de este modelo de vista,rellenar el Options propiedad y enviar a la vista.

    public ActionResult Create()
    {
      var vm = new ModelVariables();
      vm.Options = new List<SelectListItem> {
         new SelectListItem { Value="MI", Text="Michigan" },
         new SelectListItem { Value="NY", Text="New York" },
      };
      return View(vm);
    }

    Ahora, en su opinión ,el uso de la Html.ListBoxFor método auxiliar

    @model ModelVariables
    @using(Html.BeginForm())
    { 
       <label> Select items <label>
       @Html.ListBoxFor(s=>s.SelectedOptions,Model.Options)
       <input type="submit" />
    }

    Ahora en su HttpPost acción, puede tener el mismo modelo de vista como su parámetro de método y Modelo de cuaderno será capaz de asignar la publicación de los datos del formulario a un objeto de eso. El seleccionado las opciones de la interfaz de usuario estará disponible en la SelectedOptions de la propiedad del objeto de modelo de vista.

    [HttpPost]
    public ActionResult Create(ModelVariables model)
    {
      //check model.SelectedOptions property value
     //to do : Return something
    }
    • Hola Shyju, se publicó el código y se puso una excepción en el ‘no Hay viewdata elemento del tipo ‘IEnumerable<SelectListItem>’ la clave ‘SelectedOptions’
    • El código anterior utiliza el modelo inflexible & las propiedades para construir la lista desplegable. No hay manera de que usted debe conseguir que el error a menos que usted no está utilizando el código explicado en la respuesta anterior.
  2. 1

    Utilizar el For ayudante en lugar de conseguir el tiempo de compilación de cheques.
    Cuando se utiliza MultiSelectList necesitamos para enlazar los valores seleccionados a una matriz en el primer parámetro, entonces usted puede pasar su lista de selección con los valores que se muestran en el segundo parámetro.

     public string[] SelectedValues { get; set; }
    
     public MultiSelectList DropDownList { get; set; }

    Controlador:

     mv.DropDownList = new MultiSelectList(/*Your list of items here*/)

    Vista:

     @Html.DropDownListFor(x => Model.SelectedValues, Model.DropDownList)
    • Esto me ayudó mucho, gracias!
    • Genial!!! Esto se siente como hace mucho tiempo cuando he publicado esto.

Dejar respuesta

Please enter your comment!
Please enter your name here