如何将IEnumerable 映射到列表框的IList <>

问题描述:

我有两个类。 Class1和Class2。如何将IEnumerable <SelectListItem>映射到列表框的IList <>

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

该视图包含

<%=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) 
                }) 

他们有很多很多的映射。我有Class1视图中显示Class2的ListBox。如何将ListBox的输出映射回Class1的IList Class2s属性?我能够显示列表框中的值,但无法将SelectListItem映射回IList。

+0

您应该停止在视图中编写应用程序。你需要解释一下,你想要在表格的POST_之后或视图内映射__。 – queen3 2010-03-24 21:56:41

+0

感谢您的评论。我想在地图里面查看。这样我直接获取映射对象,而不是使用Id从仓库明确获取它。 – abdulmuqsith 2010-04-13 06:55:22

ToList()会做到这一点。您必须在您的aspx页面中导入System.Linq命名空间。

+0

Html.ListBox将接受IEnumerable 。那么我需要在哪里调用ToList()? – abdulmuqsith 2010-03-26 10:07:43