2011-05-13 2 views
0
<select id="DropList"> 
      @foreach (var item in Model.CategoryList) 
      { 

      <option value="@item.Id"> 
       @item.Name 
      </option> 
      } 
    </select> 

Cette liste contient des catégories d'images. Il y a une base de données contenant des informations sur les images et classer les informations. Quand je choisis une catégorie de la liste, je veux voir toutes les images qui appartiennent à la catégorie. Voici ma liste. Je veux que le contrôleur me donne des images quand je change la valeur dans la liste. J'utilise jQuery pour prendre l'identifiant de l'élément de liste sélectionné, mais comment puis-je obtenir les images.Utilisation de jQuery pour contrôler une liste déroulante

Ce code fonctionne:

 @foreach (var item in Model.CategoryList) 
     { 
      <a id="aa" href="@Url.Action("Index", "Home", new { id = @item.Id })">@item.Name</a> 

      <br /> 
     } 
     <br /> 
     <a href="@Url.Content("http://localhost:55197/Home/CategoryEkle")">Yeni Kategori Ekle</a> 

Je veux la même chose pour la liste déroulante.

+0

Décrivez le problème que vous voyez. En quoi cela ne fonctionne-t-il pas? –

+1

Parlez-vous de la façon de faire une requête ajax avec la valeur de la liste déroulante? – Tejs

+0

Je vous suggère également de créer un ViewModel qui contient un 'SelectList' et de le transmettre à votre vue. Vous pouvez alors remplacer l'ensemble de votre instruction 'foreach' par' @ Html.DropDownList ("DropList", mySelectList); ' –

Répondre

0

@ Le commentaire de Rory sur votre post est bon. Mais plutôt que de le placer dans le ViewModel (puisque les contrôleurs ne se soucient pas de la façon dont les vues affichent des choses), je le ferais dans la vue:

@{ 
    var cats = new List<SelectListItem>(); 
    foreach (var item in Model.CategoryList) 
     cats.Add(new SelectListItem() { Text = item, Value = item.Id }); 
} 

@Html.DropDownList("DropList", cats) 
Questions connexes