visual usar tutorial studio net hacer dinamico desplegable datos crear como bootstrap asp c# html asp.net-mvc

c# - usar - ¿Cuál es la mejor manera de establecer un menú desplegable seleccionado en el marcado ASP.NET MVC?



menu dinamico bootstrap asp net c# (4)

Creo que los ayudantes son la mejor manera de hacerlo.

Si no pasa un "valor seleccionado" (4º SelectList en el constructor SelectList ), se cargará desde el ModelState si hay alguno disponible. Esto es muy útil cuando se trata de respaldos de correos y quiere que MVC mantenga automáticamente el estado de su formulario entre cargas. Puede establecer una condición para usar solo la anulación con la opción "valor seleccionado" si es una primera carga, luego déjelo en MVC y los HtmlHelpers para administrar el estado después de eso.

Ver marcado:

<%= Html.DropDownList("RdfParser", ViewData["RdfParserTypes"] as SelectList) %>

Controlador:

var rdfTypes = new[] { new { value = 0, text = "RDF/XML" }, new { value = 1, text = "NTriples" }, new { value = 2, text = "Turtle" }, new { value = 3, text = "RDFa" } }; ViewData["RdfParserTypes"] = new SelectList(rdfTypes, "value", "text", rdfTypes[0]);

Tengo este html ...

<select id="View" name="View"> <option value="1">With issue covers</option> <option value="0">No issue covers</option> </select>

No me deja insertar un código como este ...

<select id="View" name="View"> <option value="1" <% ..logic code..%> >With issue covers</option> <option value="0" <% ..logic code..%> >No issue covers</option> </select>

Entonces, ¿cuál es la mejor manera de configurar uno para seleccionar?

Actualización: sin usar los HTML Helpers.


Estoy de acuerdo con Marc en el uso de ayudantes, pero si debe evitarlos, podría intentar algo como lo siguiente:

<select id="View" name="View"> <option value="1" <% if (something) { %> selected <% } %> >With issue covers</option> <option value="0" <% if (!something) { %> selected <% } %> >No issue covers</option> </select>



El "mejor" enfoque es probablemente usar los ayudantes:

var selectList = new SelectList(data, "ValueProp", "TextProp", data[1].ValueProp); ... Html.DropDownList("foo", selectList)

Donde "datos" podría ser una matriz de tipos anónimos, como:

var data = new[] { new {Key=1, Text="With issue covers"}, new {Key=0, Text="No issue covers"} }; // todo: pick the selected index or value based on your logic var selectList = new SelectList(data, "Key", "Text", data[1].Key); Writer.Write(Html.DropDownList("foo", selectList));

Otro enfoque podría ser seleccionar el elemento correcto a través del script del lado del cliente, pero obviamente eso solo funciona con el script habilitado.

Tenga en cuenta que le faltaba coma y punto y coma en la declaración de datos, lo detuvo de trabajar