在我的MVC模型Stage
中,我们将WarehouseSchedule
作为SelectListItem
:
public class Stage
{
public Stage()
{
WarehouseSchedule = new List<SelectListItem>();
}
public IEnumerable<SelectListItem> WarehouseSchedule { get; set; }
}
在我的控制器中,我这样做:
public ActionResult Stage()
{
var sch = DataRepository.GetSchedules();
var model = new Stage() {
WarehouseSchedule = sch
};
return View(model);
}
sch
是另一个类的列表,但在执行上述操作时,我收到以下错误:
无法将IList隐式转换为SelectListitem错误。
答案 0 :(得分:0)
对于您的方案,SelectList
将是更好的方法,您必须在其构造函数中传递您的scheduleles对象的sch
列表,并指定要将其指定的属性用作显示文本和作为它的值。
这将是:
public class Stage
{
public SelectList WarehouseSchedule { get; set; }
}
然后在行动中你可以填充它:
public ActionResult Stage()
{
var sch = DataRepository.GetSchedules();
var model = new Stage()
{
WarehouseSchedule = new SelectList(sch,"ScheduleID","ScheduleName");
};
return View(model);
}
上面,假设服务层返回的列表包含名为ScheduleID
和ScheduleName
的属性。
希望它可以帮到你!
答案 1 :(得分:0)
您可以使用Select
方法返回的IList
上的LINQ GetSchedules
方法。
public ActionResult Stage()
{
var model = new Stage()
{
WarehouseSchedule = DataRepository.GetSchedules()
.Select(x=>new SelectListItem {
Value=x.Id.ToString(),
Text=x.Name })
.ToList();
};
return View(model);
}
假设您的其他类具有Id
属性,该属性为数字类型且字符串类型为Name
属性。