2011-06-03 36 views
6
<div class="editor-label"> 
    @Html.LabelFor(model => model.Category) 
</div> 
<div class="editor-field"> 

    @Html.EditorFor(model => model.Category) 
    @Html.ValidationMessageFor(model => model.Category) 
</div> 

Esto me da una etiqueta y un cuadro de texto. ¿Cómo puedo obtener una lista desplegable con elementos de selección estáticos en lugar del cuadro de texto? Por favor ayuda. Soy nuevo en ASP.NET MVC. Necesito una solución/consejo en la sintaxis de Razor.DropDownList en ASP.NET MVC 3

+1

@marc_s: Estoy de acuerdo. Me llevó un tiempo registrarme. No me deja votar o aceptar respuestas hasta que me registré y luego hubo un error en el sitio con OpenId. No me dejó votar hasta ahora. – ZVenue

Respuesta

10
@Html.DropDownListFor(model => model.Category, new SelectList(new [] {"cat1", "cat2", "cat3"})); 
+0

Gracias por su ayuda. – ZVenue

3

Aquí es cómo se rellenará un DropDownList utilizando el Modelo, Vista y Controlador.

En primer lugar la vista

@using Website.Models 
@model PageWithSelectList 
@{ 
    ViewBag.Title = "Index"; 
} 
@Html.DropDownList("DayOfWeek", Model.DaysOfWeek) 

A continuación, el controlador y la acción método

using System.Web.Mvc; 
using Website.Models; 

namespace Website.Controllers 
{ 
    public class HomeController : Controller 
    { 
     public ActionResult Index() 
     { 
      var model = new PageWithSelectList(); 
      model.DayOfWeek = 3; 
      return View(model); 
     } 
    } 
} 

y la salida HTML

<select id="DayOfWeek" name="DayOfWeek"> 
<option value="1">Sunday</option> 
<option value="2">Monday</option> 
<option selected="selected" value="3">Tuesday</option> 
<option value="4">Wednesday</option> 
<option value="5">Thursday</option> 
<option value="6">Friday</option> 
<option value="7">Saturday</option> 
</select> 

espero que esto ayude.

0

Otra forma de llenar su lista desplegable es mediante el uso del viewbag.

controlador:

public Action Create() 
{ 
    FillViewBag(); 
    Return View(); 
} 

private void FillViewBag() 
    { 
     List<SelectListItem> selectOptions = new List<SelectListItem>();    
     for(int i = 1; i <= 3; i++) 
     { 
      SelectListItem sli = new SelectListItem(); 
      sli.Text = "Option " + i.ToString(); 
      sli.Value = i.ToString(); 
      selectOptions.Add(sli) 
     } 
     ViewBag.SelectOptions = selectOptions; 
    } 

en su opinión:

@Html.DropDownListFor(model => model.yourProp, ViewBag.SelectOptions as IEnumerable<SelectListItem>) 

Espero que esto ayude!

0

Usted puede utilizar el código foolowing

Controler

var list = new SelectList(new[] 
              { 
               new {ID="1",Name="Employee"}, 
               new{ID="2",Name="Debtor"}, 
               new{ID="3",Name="Supplier"}, 
               new{ID="4",Name="Patient"}, 
              }, 
          "ID", "Name", 1); 
       ViewData["list"] = list; 

       return View(); 

Ver

<div class="editor-field"> 

@Html.DropDownListFor(model => model.type,ViewData["list"] as SelectList, 
new { style = "width: 100px;"}) 

</div>