2011-06-03 6 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> 

Cela me donne une étiquette et une zone de texte. Comment puis-je obtenir une liste déroulante avec des éléments de sélection statiques à la place de la zone de texte. S'il vous plaît aider. Je suis nouveau à ASP.NET MVC. J'ai besoin de solution/conseil dans la syntaxe de Razor.DropDownList dans ASP.NET MVC 3

+1

@marc_s: Je suis d'accord. Il m'a fallu du temps pour m'inscrire. Il ne me laissera pas voter ou accepter la réponse jusqu'à ce que je me suis inscrit, puis il y a eu une erreur de site avec OpenId. Je ne me suis pas laissé voter jusqu'à maintenant. – ZVenue

Répondre

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

Merci pour votre aide. – ZVenue

3

Voici comment remplir une DropDownList en utilisant Model, View et Controller.

D'abord la vue

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

Ensuite, la méthode du contrôleur et l'action

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); 
     } 
    } 
} 

et la sortie 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> 

J'espère que cela aide.

0

Une autre façon de remplir votre liste déroulante est d'utiliser le viewbag.

Controller:

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; 
    } 

Dans votre vue:

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

Hope this vous aide!

0

Vous pouvez utiliser le code foolowing

controleur

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(); 

Voir

<div class="editor-field"> 

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

</div>