ASP.NET MVC无法将IList转换为IEnumerable?还尝试了IList到IList,但仍然存在错误

ASP.NET MVC无法将IList转换为IEnumerable?还尝试了IList到IList,但仍然存在错误,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,尝试使用ASP.NET MVC和Ajax创建局部视图。然而,我不断得到一个错误,说不能将Ilist转换为IEnumberable 我的Web服务的类: public IList<Courses> GetHallamUniCourses() { List <Courses> HallamCourse = new List <Courses>(); foreach(var courselist in _hal

尝试使用ASP.NET MVC和Ajax创建局部视图。然而,我不断得到一个错误,说不能将Ilist转换为IEnumberable

我的Web服务的类:

        public IList<Courses> GetHallamUniCourses()
    {
        List <Courses> HallamCourse = new List <Courses>();
        foreach(var courselist in _hallamUniProxy.GetAllCourses())
        {
            _courses = new Courses();
            _courses.CourseID = courselist.CourseId;
            _courses.CourseName = courselist.CourseName;
            _courses.CourseDescription = courselist.CourseDescription;
            _courses.EntryRequirements = courselist.EntryCriteria;
            HallamCourse.Add(_courses);
        }
        return HallamCourse();
    }
然后在出现错误的控制器上:

 IEnumerable<Courses.Services.Service.SheffieldHallam> courseHallam = _HallamService.GetHallamUniCourses();

知道为什么会发生这种情况吗?

将控制器代码更改为:

IEnumerable<Courses> courseHallam = _HallamService.GetHallamUniCourses();

只是为了好玩,这里是一个重写我认为会为你做的把戏,以及它有点简单

public IList<Courses> GetHallamUniCourses()
{
    return _hallamUniProxy.GetAllCourses().Select(a=> 
           new Courses()
           {
               CourseID = a.CourseId,
               CourseName = a.CourseName,
               CourseDescription = a.CourseDescription,
               EntryRequirements = a.EntryCriteria
           }).ToList();
}

所以当你说你在一个控制器上得到了一个错误,有趣的部分是在控制器中的什么地方。如果我说返回内容Hello时控制器中出现错误,那么说明性可能不太强

显示错误的全部细节!您的方法返回IList,但您声明courseHallam为IEnumerable-Courses不是SheffieldHallamExpect,除非您将其公开为IEnumerable或将.ToList添加到查询中,否则它将引发异常。谢谢!这对我帮助很大,解决了问题。谢谢,这也解决了我的问题。非常感谢。
//The name of the class must be Name+Controller, and it must extend Controller
class SomeController: Controller{
    //This is a method in the controller, it returns a Result
    //its URI is http[s]://Domain/Some
    public ContentResult Index(){
        return Content("Hello");
    }

    //This is a sub method of controller some, it's URI is http[s]://Domain/Some/Else
    public ContentResult Else(){
        return Content("Hello");
    }
}