44 votes

Remplissage de DropDownList par ASP.NET MVC

OK, j'ai cherché sur Google pendant des heures et en essayant tout et ne peut pas obtenir quoi que ce soit au travail. Je suis en train d'apprendre MVC en utilisant Sharp l'Architecture et ont généré des formes de base pour la création d'objets Client. Je veux remplir l'état dans la liste déroulante avec la liste des états AMÉRICAINS et de laisser l'utilisateur choisir parmi cette liste. Je suis en mesure de remplir la liste et obtenir la valeur de retour (pour économiser le client), mais quand je vais pour modifier le client, le client de l'état actuel n'est pas sélectionné. J'ai mis la valeur sélectionnée dans la SelectList:

<li>
    <label for="Client_StateProvince">StateProvince:</label>
    <div>
        <%= Html.DropDownListFor(c=>c.Client.StateProvince, new SelectList(Model.StateProvinces, "id", "Name", Model.Client.StateProvince), "-- Select State --")%>
    </div>
    <%= Html.ValidationMessage("Client.StateProvince")%>
</li>

Cela ne semble pas être assez bon. Ce qui me manque?

79voto

leebrandt Points 1283
 <%= Html.DropDownListFor(c => c.Client.StateProvince.Id, 
                              new SelectList(Model.StateProvinces, 
                                             "id", 
                                             "Name", 
                                             Model.Client.StateProvince), 
                              "-- Select State --")%>
 

Ça le fait.

J'espère que ceci aide quelqu'un d'autre.

~ Lee

4voto

bcahill Points 427

Je l'ai fait de cette façon. Fonctionne bien.

Manette

 IFarmModelInterface service2 = new FarmModelRepository();
ViewData["Farms"] = new SelectList(service2.GetFarmNames(), "id", "FarmName", "XenApp");
 

Vue

 <%: Html.DropDownListFor(m => m.Farm, (ViewData["Farms"] as SelectList)) %>
 

3voto

Jasvir Singh Points 39
 public ActionResult  AllUsers()
{
    List<Users> users = userRep.GetUsers();
    var listUsers = (from u in users.AsEnumerable()
                     select new SelectListItem
                     {
                        Text = u.UserName,
                        Value = u.UserId.ToString(),
                        Selected = (u.UserId==6)
                     }).AsEnumerable();
    ViewBag.ListItems = listUsers;
    //ViewBag.SelectedItem = 2;
    return View();
}
 

Dans AllUsers.cshtml

 <p>@Html.DropDownList("ListItems")</p>
 

2voto

 <%= Html.DropDownListFor(c => c.Client.StateProvince, new SelectList(Model.StateProvinces, "Id", "Name")) %> 
 

et substitue ToString () pour que StateProvince renvoie l'ID, c'est-à-dire:

 return Id.ToString();
 

Cela fonctionne mais n'est pas une solution parfaite ...

Dennis

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X