简体   繁体   English

将查询转换为列表(不起作用)asp.net mvc

[英]converting query to list (not working) asp.net mvc

I am trying to create a query whose results will be stored in a ViewModel. 我正在尝试创建一个查询,其结果将存储在ViewModel中。 When I try to assign the query variable to the ViewModel's method, I get the following error: "cannot implicitly convert type 'System.Linq.Iqueryable' to 'System.Collections.Generic.List'. An explicit-conversion exists (are you missing a cast?)". 当我尝试将查询变量分配给ViewModel的方法时,出现以下错误:“无法将类型'System.Linq.Iqueryable'隐式转换为'System.Collections.Generic.List'。存在显式转换(您是否缺少演员表?)”。 I tried changing my ViewModel's methods to be of type Iqueryable instead of List which worked but then I couldn't use a foreach loop in my view to loop through my model so I changed it back to List. 我尝试将ViewModel的方法更改为Iqueryable类型,而不是有效的List类型,但是后来我无法在视图中使用foreach循环遍历模型,因此将其更改回List。 I tried doing ToList() after my query but that didn't work either. 我在查询后尝试执行ToList(),但这也不起作用。 Any suggestions/hints/tips are greatly appreciated. 任何建议/提示/提示将不胜感激。 Below is my controller code and my ViewModel code. 以下是我的控制器代码和ViewModel代码。

ViewModel: ViewModel:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using KU_PLAN_DEV.Models;

namespace KU_PLAN_DEV.ViewModels
{
public class TrackViewModel
{
    public List<string> TRACK_INFO { get; set; }
    public List<string> GEN_ED_HEAD { get; set; }
}
}

Controller method: 控制器方式:

 public ActionResult DisplayTrackSheet(string trackButton)
    {
        var db = new KuPlanEntities();

        var trackProgNum = (from info in db.TRACK_INFO
                            where info.degreeName == trackButton
                            select info.progNum).ToString();

        var trackVerNum = (from info in db.TRACK_INFO
                           where info.degreeName == trackButton
                           select info.versionNum).ToString();

        /*var queryTrack = (from tracks in db.GEN_ED_HEAD
                          where tracks.)*/

        var trackData = (from trackInfo in db.TRACK_INFO
                         where trackInfo.progNum == trackProgNum
                         && trackInfo.versionNum == trackVerNum
                         select trackInfo);

        var trackDisplayMod = new TrackViewModel
        {
            TRACK_INFO = trackData
        };

        return View(trackDisplayMod);
    }
    var trackDisplayMod = new TrackViewModel
    {
        TRACK_INFO = trackData.ToList()
    };

What error do you get when you make that change? 进行更改时会遇到什么错误?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM