不能暗示List进入IEnumerable

时间:2015-06-11 12:08:16

标签: c# asp.net-mvc controller viewmodel

我的ViewModel

public class ViewModelCT
{
    public IEnumerable<SelectListItem> Tests { get; set; }
    public IEnumerable<string> SelectedTests { get; set; }
    public Course course { get; set; }   
}

控制器

public ActionResult Details(int id)
{

    Course course = functionality.toCourse(functionality.GetCourseById(id));
    List<SelectListItem> lsli = new List<SelectListItem>();

    ViewModelCT vm = new ViewModelCT();
    foreach (SchoolService.Test sTest in functionality.GetTestByCourse(id))
    {
        SelectListItem sli = new SelectListItem()
        {
            Text = sTest.Name,
            Value = sTest.Id.ToString(),
            Selected = false
        };
        lsli.Add(sli);
       // vm.Tests.(functionality.toTest(sTest));
    }

    **vm.Tests = lsli;**
    vm.course = functionality.toCourse(functionality.GetCourseById(id));
    return View(vm);    
}

我得到错误:

  

错误1无法隐式转换类型   System.Collections.Generic.List<System.Web.Mvc.SelectListItem>来   System.Collections.Generic.IEnumerable<System.Web.WebPages.Html.SelectListItem>。   存在显式转换(您是否错过了演员?)

我不知道为什么它不起作用。

1 个答案:

答案 0 :(得分:4)

正如错误所暗示的那样,System.Web.WebPages.Html.SelectListItemSystem.Web.Mvc.SelectListItem不是同一回事。 ViewModelCT和您的控制器引用了不同的SelectListItem类。

检查每个文件中的using语句。我怀疑有一个using System.Web.Mvc而另一个有using System.Web.WebPages.Html