asp.net-mvc - textboxfor - seleccionar un valor de un dropdownlist c#




MVC5-Cómo configurar "selectedValue" en DropDownListFor Html helper (2)

Asegúrese de que su Valor de selección de retorno sea una Cadena y no e int cuando lo declare en su modelo.

Ejemplo:

public class MyModel
{
    public string TipPopustaId { get; set; }
}

Como dice la pregunta: ¿Cómo configurar selectedValue en DropDownListFor Html helper?

Intenté la mayoría de las otras soluciones, pero ninguna funcionó, por eso estoy abriendo una nueva pregunta.

Nada de esto ayudó:

@Html.DropDownListFor(m => m.TipPopustaId, new SelectList(Model.TipoviDepozita, "Id", "Naziv", 2), htmlAttributes: new { @class = "form-control" })

//Not working with or without cast
@Html.DropDownListFor(m => m.TipPopustaId, new SelectList(Model.TipoviDepozita, "Id", "Naziv", (ProjectName.Models.TipDepozita)Model.TipoviDepozita.Single(x => x.Id == 2)), htmlAttributes: new { @class = "form-control" })
@Html.DropDownListFor(m => m.TipPopustaId, new SelectList(Model.TipoviDepozita, "Id", "Naziv", (ProjectName.Models.TipDepozita)Model.TipoviDepozita.Where(x => x.Id == 2).FirstOrDefault()), htmlAttributes: new { @class = "form-control" })

@Html.DropDownListFor(m => m.TipPopustaId, new SelectList(Model.TipoviDepozita, "Id", "Naziv", new SelectListItem() { Value="2", Selected=true}), htmlAttributes: new { @class = "form-control" })

Me gustaría evitar la creación manual de SelectListItems o ViewModel solo para la lista si es posible.


Cuando utiliza el método DropDownListFor() (o DropDownList() ) para enlazar a una propiedad de modelo, es el valor de la propiedad que establece la opción seleccionada.

Internamente, los métodos generan su propio IEnumerable<SelectListItem> y establecen la propiedad Selected función del valor de la propiedad y, por lo tanto, se ignora la configuración de la propiedad Selected . El único momento en que se respeta es cuando no se vincula a una propiedad modelo, por ejemplo, utilizando

@Html.DropDownList("NotAModelProperty", new SelectList(Model.TipoviDepozita, "Id", "Naziv", 2))

Tenga en cuenta que puede inspeccionar el código fuente , en particular los SelectInternal() y GetSelectListWithDefaultValue() para ver cómo funciona en detalle.

Para mostrar la opción seleccionada cuando la vista se procesa por primera vez, establezca el valor de la propiedad en el método GET antes de pasar el modelo a la vista

También recomiendo que su modelo de vista contenga una propiedad IEnumerable<SelectListItem> TipoviDepozita y que genere la SelectList en el controlador

var model = new YourModel()
{
    TipoviDepozita = new SelectList(yourCollection, "Id", "Naziv"),
    TipPopustaId = 2 // set the selected option
}
return View(model);

entonces la vista se convierte

@Html.DropDownListFor(m => m.TipPopustaId, Model.TipoviDepozita, new { @class = "form-control" })






html-helper