C# 传递到字典中的模型项的类型为X,但此字典需要类型为X的模型项
我正在尝试创建一个C# 传递到字典中的模型项的类型为X,但此字典需要类型为X的模型项,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,我正在尝试创建一个视图模型。对于我的应用程序,我想显示一个客户列表,其中他们的帐户上存在错误。错误由另一个程序存储在数据库中 最终目的是定期向客户发送一条信息,告知其帐户中的项目有错误(我们处理的是车辆,因此车牌检查可能会出现问题,需要客户采取行动) 我创建了一个名为CustomerAlerts.cs的ViewModel using MyProjectName.Models; namespace MyProjectName.ViewModels { public class Custo
视图模型
。对于我的应用程序,我想显示一个客户列表,其中他们的帐户上存在错误。错误由另一个程序存储在数据库中
最终目的是定期向客户发送一条信息,告知其帐户中的项目有错误(我们处理的是车辆,因此车牌检查可能会出现问题,需要客户采取行动)
我创建了一个名为CustomerAlerts.cs的ViewModel
using MyProjectName.Models;
namespace MyProjectName.ViewModels
{
public class CustomerAlerts
{
public IEnumerable<string> companynames { get; set; }
}
}
在我看来,最重要的是
@model IEnumerable<MyProjectName.ViewModels.CustomerAlerts>
但这会导致“不包含可计算的定义”错误。您正在向视图传递一个
CustomerAlerts
实例,但视图的模型类型是CustomerAlerts
的集合
传递一组自定义项
,或将视图模型类型更改为:
@model MyProjectName.ViewModels.CustomerAlerts
@model MyProjectName.ViewModels.CustomerAlerts
这是因为您从
Index
方法返回Customerlerts
的单个实例,并且您的视图需要它的列表。根据上面的@devdigital,对我有效的答案是将视图模型类型更改为:
@model MyProjectName.ViewModels.CustomerAlerts
@model MyProjectName.ViewModels.CustomerAlerts
我以前确实尝试过这个,但是视图中缺少了导致异常的其他内容。foreach语句需要对此进行一些调整:
@foreach (var companyname in Model.companynames)
{
<tr>
<td>@companyname</td>
<td>@companyname.Count()</td>
</tr>
}
@foreach(Model.companynames中的var companyname)
{
@公司名称
@companyname.Count()
}
现在,这显示了一个携带错误的公司列表,以及他们的库存中有多少车辆处于错误状态。我已经修复了它,但是。对不起。下次注意。谢谢-这正是我需要的线索。谢谢-这正是我需要的线索。更改视图模型类型是我的答案,同时在foreach语句中更改了代码。
@foreach (var companyname in Model.companynames)
{
<tr>
<td>@companyname</td>
<td>@companyname.Count()</td>
</tr>
}