[asp.net-mvc]将类对象 IQueryable 从视图发送到控制器类

标签: Asp.net-MVC Linq C#
发布时间: 2017/3/25 19:36:15
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有相处的错误返回的 IQuerable 对象从视图到 MVC 应用程序中的控制器

enter image description here

public partial class Course_Services
{
    #region Process All Courses Application's URL
    public IQueryable<CourseInstanceModel> ProcessAllCoursesApplicationURL(CourseApplicationsURLFeed_Model _obj)
    {
        IQueryable<CourseInstanceModel> ListOfCoursesInstances; 

        //get all the courses which have Application URL is Null..
        using(var _uof = new Courses_UnitOfWork())
        {
            ListOfCoursesInstances = _uof.CourseInstances_Repository.GetAll();

          var _listOfCoursesWithoutURL = from b in ListOfCoursesInstances 
                                           where b.ApplicationURL == null
                                           select ListOfCoursesInstances;

          return _listOfCoursesWithoutURL;
        }
    }
    #endregion
}

我很难理解我在哪里做错。提前许多感谢

解决方法 1:

你要选择错误的事情。你应该选择 b 您那里创建的变量。

var _listOfCoursesWithoutURL = from b in ListOfCoursesInstances 
                               where b.ApplicationURL == null
                               select b;

它选择了你有它,现在你有 ListOfCoursesInstances 一次为该列表中的每个元素。因为 ListOfCourseInstances 本身就是 IQueryable<CourseInstanceModel> ,这意味着你正在返回 IQueryable<IQueryable<CourseInstanceModel>> ,这是无效的方法,你有,它只返回 IQueryable<CourseInstanceModel>

或者,您还可以做什么 @Steve 即在评论中写道︰

return ListOfCoursesInstances.Where(x => x.ApplicationURL == null);

这使用 LINQ 的扩展方法而不是常规的语法来做同样的事情。正是在这一点只是个人喜好的问题。

赞助商