web-dev-qa-db-fra.com

Lier Html.DropDownList avec des éléments statiques

Je dois lier un Html.DropDownList avec seulement deux éléments de manière statique. 

Text="Yes" Value="1"
Text="No"  Value="0"

La chose importante est que je dois définir les champs de texte et de valeur. 

Comment puis-je faire ceci?

13
Mukesh

Il est recommandé de ne pas créer la liste de sélection dans la vue. Vous devez le créer dans le contrôleur et le transmettre à l'aide de ViewData.

Exemple:

var list = new SelectList(new [] 
{
    new { ID = "1", Name = "name1" },
    new { ID = "2", Name = "name2" },
    new { ID = "3", Name = "name3" },
}, 
"ID", "Name", 1);

ViewData["list"]=list;
return View();

vous passez au constratctor: l’objet IEnumerable, le champ valeur, le champ texte et la valeur sélectionnée.

dans la vue:

<%=Html.DropDownList("list",ViewData["list"] as SelectList) %>
24
Sreekumar P

J'ai utilisé cela fonctionne correctement 

        @Html.DropDownList("Status", new List<SelectListItem>

                 {
                    new SelectListItem{ Text="Active", Value = "1" },
                    new SelectListItem{ Text="Not-Active", Value = "0" }
                 }) 
30
Saurabhbhatt

Le code ci-dessous suppose que vous utilisez un moteur de vue rasoir, sinon vous devrez le convertir.

@{
   var listItems = new List<ListItem>();
   listItems.Add(new ListItem{Text="Yes", Value="1"});
   listItems.Add(new ListItem{Text="No", Value="0"});
}

@Html.DropDownListFor(m=>m.SelectedValue, listItem);

Vous devriez envisager de créer le modèle dans votre code au lieu de la vue. Ce serait également un bon candidat pour un modèle d’éditeur.

5
sarvesh

si vous voulez être un peu explicitement alors essayez 

        @{
            var domainsList = new SelectList(new []
            {
                new SelectListItem { Text = ".Com", Value = ".com", Selected = true },
                new SelectListItem { Text = ".Shopping", Value = ".shopping"},
                new SelectListItem { Text = ".Org", Value = ".org"},
                new SelectListItem { Text = ".Net", Value = ".net"},
                new SelectListItem { Text = ".AE", Value = ".ae"},
                new SelectListItem { Text = ".Info", Value = ".info"},
            }, "Value", "Text");
        }
        @Html.DropDownList("TopLevelDomains", domainsList)
0
DotNet Dreamer

Cela a résolu le problème pour moi:

 <td>
            @{  var RlistItems = new List<SelectListItem>();

                RlistItems.Add(new SelectListItem { Text = "Select Room Type", Value = "0" });
                RlistItems.Add(new SelectListItem { Text = "Meeting Room", Value = "1" });
                RlistItems.Add(new SelectListItem { Text = "Office", Value = "2" });
                RlistItems.Add(new SelectListItem { Text = "Cafeteria", Value = "3" });
            }

                @Html.DropDownListFor(model=>model.FirstOrDefault().RoomType
,RlistItems,RlistItems[item.RoomType.Value].Selected=true )
        </td>

0
Paul Makram Fares