2010-03-24 6 views
0

J'ai deux classes. Class1 et Class2.Comment mapper IEnumerable <SelectListItem> à IList <> pour ListBox

public class Class1{ 
    ... 
    public virtual IList<Class2> Class2s{get;set;} 
    ... 
} 
public class Class2{ 
    ... 
    public virtual IList<Class1> Class1s{get;set;} 
    ... 
} 

La vue contient

<%=Html.ListBox("Class2s", 
         ViewData.Model.Class2s.Select(
                x => new SelectListItem { 
                 Text = x.Name, 
                 Value = x.Id.ToString(), 
                 Selected = ViewData.Model.Class1.Class2s.Any(y => y.Id == x.Id) 
                }) 

Ils ont beaucoup à beaucoup de cartographie. J'ai une ListBox en vue Class1 qui affiche Class2. Comment mapper la sortie de ListBox à la propriété IList Class2s de Class1? Je suis capable d'afficher les valeurs dans le ListBox mais incapable de mapper le SelectListItem à IList.

+0

Vous devez arrêter de coder votre application dans la vue. Et vous devez expliquer, voulez-vous mapper _après POST_ de votre formulaire, ou à l'intérieur de la vue. – queen3

+0

Merci pour le commentaire. Je voudrais mapper la vue intérieure. De cette façon, je reçois directement l'objet mappé au lieu de l'obtenir explicitement à partir de Repository en utilisant l'Id. – abdulmuqsith

Répondre

0

ToList() le fera. Vous devrez importer l'espace de noms System.Linq dans votre page aspx.

+0

Html.ListBox acceptera IEnumerable . Alors, où dois-je appeler ToList()? – abdulmuqsith

Questions connexes