Asp.net mvc 3 MVC3传递到字典中的模型项的类型为'_320.Models.MyViewModel';,但是

Asp.net mvc 3 MVC3传递到字典中的模型项的类型为'_320.Models.MyViewModel';,但是,asp.net-mvc-3,list,foreach,viewmodel,Asp.net Mvc 3,List,Foreach,Viewmodel,我正在将viewmodel传递到包含foreach循环的视图中。此viewmodel包含两个列表。这些列表使用Linq填充 使用以下代码,我得到以下错误:传入字典的模型项的类型为“_320.Models.MyViewModel”,但此字典需要“System.Collections.Generic.IEnumerable”类型的模型项“1[_320.Models.MyViewModel]” 我希望在视图的foreach循环中访问ViewModel中两个列表中包含的属性 更新 我已经能够通过将控制器

我正在将viewmodel传递到包含foreach循环的视图中。此viewmodel包含两个列表。这些列表使用Linq填充

使用以下代码,我得到以下错误:传入字典的模型项的类型为“_320.Models.MyViewModel”,但此字典需要“System.Collections.Generic.IEnumerable”类型的模型项“1[_320.Models.MyViewModel]”

我希望在视图的foreach循环中访问ViewModel中两个列表中包含的属性

更新 我已经能够通过将控制器代码的末尾修改为以下内容来显示视图:

List<MyViewModel> MyList = new List<MyViewModel>();
           MyList.Add(_myViewModel);
                return View(MyList);
控制器

public ActionResult AllFilled()
        {
            MyViewModel _myViewModel = new MyViewModel();
            List<Fill> FillList = db.Fills.Where(p => p.Status == "Filled").ToList();
            List<Rx> RxList = new List<Rx>();
            Rx myRx = new Rx();
            foreach (var item in FillList)
            {
                myRx = db.Rxes.Single(p => p.Rx_ID == item.Rx_ID);
                RxList.Add(myRx);
            }
            _myViewModel.Fills = FillList;
            _myViewModel.Rxes = RxList;

                return View(_myViewModel);
            }
        }
public ActionResult AllFilled()
{
MyViewModel_MyViewModel=新的MyViewModel();
List FillList=db.Fills.Where(p=>p.Status==“Filled”).ToList();
List RxList=新列表();
Rx myRx=新的Rx();
foreach(填充列表中的变量项)
{
myRx=db.Rxes.Single(p=>p.Rx\u ID==item.Rx\u ID);
RxList.Add(myRx);
}
_myViewModel.Fills=FillList;
_myViewModel.Rxes=RxList;
返回视图(_myViewModel);
}
}
看法

@model IEnumerable
@{
ViewBag.Title=“全部填充”;
}
满满的

@ActionLink(“新建”、“创建”)

国家数据中心 Rx_ID 填表 地位 填写日期 充满 { @foreach(模型中的var项目){ @DisplayFor(modeleItem=>item.rx.NDC) @DisplayFor(modelItem=>item.rx.rx\u ID) @DisplayFor(modeleItem=>item.fill.fill\u ID) @DisplayFor(modelItem=>item.fill.Status) @DisplayFor(modelItem=>item.fill.Filled\u日期) @DisplayFor(modeleItem=>item.fill.Filled\u By) @ActionLink(“详细信息”,“详细信息”,新的{id=item.rx.rx_id}) }
由于视图中的第一行,您的视图需要IEnumerable类型的模型

@model IEnumerable<_320.Models.MyViewModel>

当我这样做时,我得到一个关于我的模型不包含GetEnumerator@foreach(模型中的var项目)line说,您的模型只是一个MyViewModel对象列表,当您在循环中使用它们时,每个对象都包含一个fill和rx对象。但是您在控制器中的一个MyViewModel对象中填充了两个单独的fill和rx对象列表。相反,您需要创建一个MyViewModel列表,并且每个对象都应该有一个fill和rx对象
@model IEnumerable<_320.Models.MyViewModel>

@{
    ViewBag.Title = "AllFilled";
}

<h2>AllFilled</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table>
    <tr>
        <th>
            NDC
        </th>
        <th>
            Rx_ID
        </th>
        <th>
            Fill_ID
        </th>
        <th>
            Status
        </th>
        <th>
            Filled Date
        </th>
        <th>
            Filled By
        </th>
        <th></th>
    </tr>
    {
@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.rx.NDC)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.rx.Rx_ID)
        </td>
        <td>
            @Html.DisplayFor(modelItem =>item.fill.Fill_ID)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.fill.Status)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.fill.Filled_Date)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.fill.Filled_By)
        </td>
        <td>
            @Html.ActionLink("Details", "Details", new { id=item.rx.Rx_ID })
        </td>
    </tr>
}
</table>
@model IEnumerable<_320.Models.MyViewModel>
@model _320.Models.MyViewModel