C#学习教程:MVC:Dictionaryrequiresamodelitemoftype'System.Collections.Generic.IEnumerable`1这个错误,我不确定我是否能够做到这一点,这是我的代码..appcontrollerpublicActionResultAppView(){Listapps;使用(ISiteDbContextcontext=_resolver.GetService()){apps=context.Applications.列表();}returnPartialView("AppView",apps.OrderBy(a=>a.Name).ToList());渲染部分-这是在家庭控制器的视图内。@{Html.RenderPartial("~/Views/Application/AppView.cshtml",newExample.Services.DAL.Application());}和我的应用程序视图@modelIEnumerable@{ViewBag.Title="Applications";}Applications@Html.ActionLink("AddNewApplication","Create")@Html.DisplayNameFor(model=>model.Name)@foreach(variteminModel){@Html.DisplayFor(modelItem=>item.Name)@Html.ActionLink("编辑","编辑",new{id=item.ID})|@Html.ActionLink("详情","详情",new{id=item.ID})|@Html.ActionLink("Delete","Delete",new{id=item.ID})}完整的错误信息:传递到字典中的模型项的类型是'Example.Services.DAL.Application',但是这个字典期望类型为“System.Collections.Generic.IEnumerable`1[Example.Services.DAL.Application]”的模型项。由于错误的声明,您传递了错误的类型。将@{Html.RenderPartial("~/Views/Application/AppView.cshtml",newExample.Services.DAL.Application());}更改为:@{Html.RenderPartial("~/Views/Application/AppView.cshtml",newList{newExample.Services.DAL.Application()});}你的AppView.cshtml绑定到强类型的@modelIEnumerable并传递@{Html.RenderPartial("~/Views/Application/AppView.cshtml",newExample.Services.DAL.Application());}它应该是一个列表对象。您必须通过Example.Services.DAL.Application()列表将您的@{Html.RenderPartial("~/Views/Application/AppView.cshtml",newExample.Services.DAL.Application());}更改为@{Html.RenderPartial("~/Views/Application/AppView.cshtml",newList{newExample.Services.DAL.Application()});}您的代码正在寻找一个Ienumerable,因为您传递给局部视图的内容必须匹配视图中的相同内容,因此请尝试将应用程序视图的第一行更改为@modelExample.Services.DAL.Application它对我有用,希望它对你也有用:D排序用于集合,你需要一种对其进行排序的方法。通常,这是通过继承“IComparable”接口来完成的。在Object类中,您需要一个方法“Compare”来确定比较对象实例以进行排序的方法(我在我的项目中使用“Date”)。回顾一下:您在应用程序控制器中使用它:returnPartialView("AppView",apps.OrderBy(a=>a.Name).ToList());但是对于实际排序(或在本例中为OrderBy),您需要在“应用程序”类中使用一个方法来比较列表中的实例以对它们进行排序。这是使用“比较”方法完成的:intCompare(Objectx,Objecty)如何比较完全取决于您。结果是:我希望这会有所帮助。祝你好运!DearBj?rn以上就是C#学习教程:MVC:Dictionaryneedsamodelitemoftype'System.Collections.Generic.IEnumerable`1全部内容分享出来,如果对大家有用,还需要进一步了解C#学习教程,希望大家多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
