C# MVC列表视图和模型

C# MVC列表视图和模型,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,我收到这个错误 传递到字典中的模型项的类型为 “Pms_system.Models.MaintenanceCheckListModel”,但这本字典 需要类型为的模型项 'System.Collections.Generic.IEnumerable'1[Pms_System.Models.MaintenanceCheckListModel]' 我的控制器里有这个 public ActionResult MaintenanceCheckList (MaintenanceCheckListModel

我收到这个错误

传递到字典中的模型项的类型为 “Pms_system.Models.MaintenanceCheckListModel”,但这本字典 需要类型为的模型项 'System.Collections.Generic.IEnumerable'1[Pms_System.Models.MaintenanceCheckListModel]'

我的控制器里有这个

public ActionResult MaintenanceCheckList (MaintenanceCheckListModel check)
    {
       List<MaintenanceCheckListModel> checklist = db.checklists.Select( s => new MaintenanceCheckListModel()
        {
            FirstMonth = check.FirstMonth,
            SecondMonth = check.SecondMonth,
            ThirdMonth = check.ThirdMonth,
            FourthMonth = check.FourthMonth,
            FifthMonth = check.FifthMonth,
            SixthMonth = check.SixthMonth,
            SeventhMonth = check.SeventhMonth,
            EighthMonth = check.EighthMonth,
            NinethMonth = check.NinethMonth ,
            TenthMonth = check.TenthMonth,
            EleventhMonth = check.EleventhMonth,
            TwelvethMonth = check.TwelvethMonth
        }).ToList();

        return View(check);

    }
公共行动结果维护检查列表(维护检查列表模型检查)
{
List checklist=db.checklists.Select(s=>newmaintenancechecklistmodel()
{
FirstMonth=check.FirstMonth,
第二个月=支票。第二个月,
第三个月=检查。第三个月,
第四个月=检查。第四个月,
第五个月=检查。第五个月,
第六个月=检查。第六个月,
第七个月=支票。第七个月,
第八个月=检查。第八个月,
第九个月=支票。第九个月,
第十个月=检查。第十个月,
EleventhMonth=check.EleventhMonth,
十二个月=检查。十二个月
}).ToList();
返回视图(检查);
}
这是我的观点

{
 @model IEnumerable<Pms_system.Models.MaintenanceCheckListModel>

@{
ViewBag.Title = "MaintenanceCheckList";
Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>MaintenanceCheckList</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
    <th>
        @Html.DisplayNameFor(model => model.FirstMonth)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.SecondMonth)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.ThirdMonth)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.FourthMonth)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.FifthMonth)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.SixthMonth)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.SeventhMonth)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.EighthMonth)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.NinethMonth)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.TenthMonth)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.EleventhMonth)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.TwelvethMonth)
    </th>
    <th></th>
</tr>

@foreach (var item in Model) {
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.FirstMonth)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.SecondMonth)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.ThirdMonth)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.FourthMonth)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.FifthMonth)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.SixthMonth)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.SeventhMonth)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.EighthMonth)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.NinethMonth)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.TenthMonth)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.EleventhMonth)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.TwelvethMonth)
    </td>

</tr>
}
{
@模型IEnumerable
@{
ViewBag.Title=“MaintenanceCheckList”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}
维护检查表

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

@DisplayNameFor(model=>model.FirstMonth) @DisplayNameFor(model=>model.SecondMonth) @DisplayNameFor(model=>model.ThirdMonth) @DisplayNameFor(model=>model.FourthMonth) @Html.DisplayNameFor(model=>model.FifthMonth) @Html.DisplayNameFor(model=>model.SixthMonth) @DisplayNameFor(model=>model.SeventhMonth) @DisplayNameFor(model=>model.EighthMonth) @DisplayNameFor(model=>model.NinethMonth) @DisplayNameFor(model=>model.TenthMonth) @DisplayNameFor(model=>model.EleventhMonth) @DisplayNameFor(model=>model.十二个月) @foreach(模型中的var项目){ @DisplayFor(modelItem=>item.FirstMonth) @DisplayFor(modelItem=>item.SecondMonth) @DisplayFor(modelItem=>item.ThirdMonth) @DisplayFor(modelItem=>item.FourthMonth) @DisplayFor(modelItem=>item.FifthMonth) @DisplayFor(modelItem=>item.SixthMonth) @DisplayFor(modelItem=>item.SeventhMonth) @DisplayFor(modelItem=>item.8个月) @DisplayFor(modelItem=>item.NinethMonth) @DisplayFor(modelItem=>item.TenthMonth) @DisplayFor(modelItem=>item.EleventhMonth) @DisplayFor(modelItem=>item.12个月) }


错误的解决方案是什么?

将控制器操作更改为以下内容:

public ActionResult MaintenanceCheckList (MaintenanceCheckListModel check)
{
       List<MaintenanceCheckListModel> checklist = db.checklists.Select( s => new MaintenanceCheckListModel()
        {
            FirstMonth = check.FirstMonth,
            SecondMonth = check.SecondMonth,
            ThirdMonth = check.ThirdMonth,
            FourthMonth = check.FourthMonth,
            FifthMonth = check.FifthMonth,
            SixthMonth = check.SixthMonth,
            SeventhMonth = check.SeventhMonth,
            EighthMonth = check.EighthMonth,
            NinethMonth = check.NinethMonth ,
            TenthMonth = check.TenthMonth,
            EleventhMonth = check.EleventhMonth,
            TwelvethMonth = check.TwelvethMonth
        }).ToList();

        return View(checklist);
}
公共行动结果维护检查列表(维护检查列表模型检查)
{
List checklist=db.checklists.Select(s=>newmaintenancechecklistmodel()
{
FirstMonth=check.FirstMonth,
第二个月=支票。第二个月,
第三个月=检查。第三个月,
第四个月=检查。第四个月,
第五个月=检查。第五个月,
第六个月=检查。第六个月,
第七个月=支票。第七个月,
第八个月=检查。第八个月,
第九个月=支票。第九个月,
第十个月=检查。第十个月,
EleventhMonth=check.EleventhMonth,
十二个月=检查。十二个月
}).ToList();
返回视图(检查表);
}

您正在以不同类型的视图模型传递参数。

将控制器操作更改为以下内容:

public ActionResult MaintenanceCheckList (MaintenanceCheckListModel check)
{
       List<MaintenanceCheckListModel> checklist = db.checklists.Select( s => new MaintenanceCheckListModel()
        {
            FirstMonth = check.FirstMonth,
            SecondMonth = check.SecondMonth,
            ThirdMonth = check.ThirdMonth,
            FourthMonth = check.FourthMonth,
            FifthMonth = check.FifthMonth,
            SixthMonth = check.SixthMonth,
            SeventhMonth = check.SeventhMonth,
            EighthMonth = check.EighthMonth,
            NinethMonth = check.NinethMonth ,
            TenthMonth = check.TenthMonth,
            EleventhMonth = check.EleventhMonth,
            TwelvethMonth = check.TwelvethMonth
        }).ToList();

        return View(checklist);
}
公共行动结果维护检查列表(维护检查列表模型检查)
{
List checklist=db.checklists.Select(s=>newmaintenancechecklistmodel()
{
FirstMonth=check.FirstMonth,
第二个月=支票。第二个月,
第三个月=检查。第三个月,
第四个月=检查。第四个月,
第五个月=检查。第五个月,
第六个月=检查。第六个月,
第七个月=支票。第七个月,
第八个月=检查。第八个月,
第九个月=支票。第九个月,
第十个月=检查。第十个月,
EleventhMonth=check.EleventhMonth,
十二个月=检查。十二个月
}).ToList();
返回视图(检查表);
}

您正在将参数作为类型不同的视图模型传递。

这是由于类型不同。您需要将相同的类型传递给视图。 根据此更改控制器或视图

MaintenanceCheckListModel check
 return View(check);

 @model Pms_system.Models.MaintenanceCheckListModel

List checklist=db.checklists.Select(s=>newmaintenancechecklistmodel(){}).ToList();
返回视图(检查表);
@模型列表
编辑:

在一个侧面注意,如果您使用的是
List
Ienumerable
则必须循环查看中的所有值。

这是由于类型差异。您需要将相同类型传递给视图。 根据此更改控制器或视图

MaintenanceCheckListModel check
 return View(check);

 @model Pms_system.Models.MaintenanceCheckListModel

List checklist=db.checklists.Select(s=>newmaintenancechecklistmodel(){}).ToList();
返回视图(检查表);
@模型列表
编辑:

另一方面,如果您使用的是
列表
Ienumerable
,则必须循环查看视图中的所有值。

您传递的是MaintenanceCheckListModel对象,而您期望的是Ienumerable。请传递检查表,而不是从控制器签入视图

只是,将返回视图(检查)更改为返回视图