C# MVC列表视图和模型
我收到这个错误 传递到字典中的模型项的类型为 “Pms_system.Models.MaintenanceCheckListModel”,但这本字典 需要类型为的模型项 'System.Collections.Generic.IEnumerable'1[Pms_System.Models.MaintenanceCheckListModel]' 我的控制器里有这个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
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。请传递检查表,而不是从控制器签入视图
只是,将返回视图(检查)更改为返回视图