C# 无法隐式转换类型';系统Linq.IQueryable<&燃气轮机';至';型号';。存在显式转换(是否缺少强制转换?)

C# 无法隐式转换类型';系统Linq.IQueryable<&燃气轮机';至';型号';。存在显式转换(是否缺少强制转换?),c#,asp.net-mvc,asp.net-mvc-4,listbox,C#,Asp.net Mvc,Asp.net Mvc 4,Listbox,我是MVC的新手,我对MVC不太了解,所以有时候我不会出错, 我正在创建双列表框,并将listbox1的项目移动到listbox2,在第一个listbox中从数据库获取数据,因此我创建了以下内容。。 Model.cs public class Model { public int Id { get; set; } public string Name { get; set; } public string Class { get; set; } } public cla

我是MVC的新手,我对MVC不太了解,所以有时候我不会出错, 我正在创建双列表框,并将listbox1的项目移动到listbox2,在第一个listbox中从数据库获取数据,因此我创建了以下内容。。 Model.cs

public class Model
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Class { get; set; }
}
public class ViewModel
{
    public List<Model> AvailableModel { get; set; }

    public List<Model> RequestedModel { get; set; }

    public string[] AvailableSelected { get; set; }
    public string[] RequestedSelected { get; set; }
}
ViewModel.cs

public class Model
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Class { get; set; }
}
public class ViewModel
{
    public List<Model> AvailableModel { get; set; }

    public List<Model> RequestedModel { get; set; }

    public string[] AvailableSelected { get; set; }
    public string[] RequestedSelected { get; set; }
}
请帮我解决一下

已更新

在遵循您的ans。。 我又看到了这个新的例外

对象引用未设置为对象的实例

在这一行

var name = (from m in db.Models
    select m);
    return name;
<%:Html.ListBoxFor(model =>model.AvailableSelected, newMultiSelectList(Model.AvailableModel, "Id", "Name", Model.AvailableSelected))%>
model.AvailableSelected,新建多选列表(model.AvailableModel,“Id”,“Name”,model.AvailableSelected))%>

  • 编辑

查看

<h2>Index</h2>
<%using(Html.BeginForm()) {%>
<div>
<hr/>
<table>
<thead>
<tr>
<th>
                       Available
</th>

<th>

</th>

<th>
                       Requested
</th>
</tr>
</thead>

<tbody>
<tr>
<td>
<%:Html.ListBoxFor(model =>model.AvailableSelected, newMultiSelectList(Model.AvailableModel, "Id", "Name", Model.AvailableSelected))%>
</td>

<td>
<inputid="add"name="add"type="submit"value=">>"/>
<br/>
<inputid="remove"name="remove"type="submit"value="<<"/>
</td>

<td>
<%:Html.ListBoxFor(model=>model.RequestedSelected,newMultiSelectList(Model.RequestedModel,"Id","Name",Model.RequestedSelected)) %>
</td>
</tr>
</tbody>
</table>
<br/>

<hr/>
</div>
<% }%>
索引

可用 请求 model.AvailableSelected,新建多选列表(model.AvailableModel,“Id”,“Name”,model.AvailableSelected))%>
model.RequestedSelected,newMultiSelectList(model.RequestedModel,“Id”,“Name”,model.RequestedSelected))%>


正如您在代码中看到的,返回方法的类型是Model,您返回一个Linq对象,这就是它通过异常的原因。

您的getAllInstituteNameList需要模型集合(列表)。 getName返回单个模型(与上述预期类型冲突)。 getName尝试返回集合,但预期结果是单个模型。还有一个错误

[NonAction]
private List<Model>getName()
{
    var names = (from m in db.Models
                select m).ToList();
    return names;
}

[NonAction]
public List<Model> getAllInstituteNameList()
{
    return getNames();
}

Que:在编写这个私有模型getName(){var name=(db.Models).First();return name;}之后,它再次抛出这个异常,无法将类型“DemoListBox.Models.Model”隐式转换为“System.Collection.Generic.List”@user3449277请编辑您的问题,不是answer@user3449277在将模型返回到之前,初始化模型中的所有属性view@user3449277您没有将其返回到视图。检查editOh。。。我忘了。。非常感谢你的帮助。。谢谢您也可以粘贴您的
视图的代码
,请@lnanikian参见编辑