1

我已经从实体框架绑定了列表框数据。我在该列表框中选择了多个值。但是,这些值不会被触发。该属性的计数仅为 0。我正在使用下面的代码:

public class Sample1  
{  
[Key]  
public int SampleId{ get; set; }  
public string SampleDesc{ get; set; }  
}
public class ExpModel  
{  
public List<Sample1> Sample{ get; set; }  
}
public ActionResult Index()  
{       
ViewData["SampleList"] = new List<Sample1>(entity.samp);  
return View();  
} 
@Html.ListBoxFor(model => model.Sample, new  SelectList(((List<Details.Models.Sample1>)ViewData["SampleList"]), "SampleId", "SampleDesc")) 

我需要做什么?请帮我...

4

1 回答 1

0

您应该将 ListBoxFor 助手绑定到一个属性,该属性是简单/标量值(例如字符串或整数)的集合:

public class Sample1  
{  
    [Key]  
    public int SampleId { get; set; }  
    public string SampleDesc { get; set; }  
}

public class ExpModel  
{  
    public List<int> SelectedSampleIds { get; set; }  
}

接着:

public ActionResult Index()  
{       
    ViewData["SampleList"] = new List<Sample1>(entity.samp);
    return View();  
}

在您看来:

@Html.ListBoxFor(
    model => model.SelectedSampleIds, 
    new SelectList(
        (List<Details.Models.Sample1>)ViewData["SampleList"], 
        "SampleId", 
        "SampleDesc"
    )
)

现在,当您提交表单时,该SelectedSampleIds集合将在列表框中包含选定的 id。

于 2013-08-08T06:15:58.217 回答