I am getting this error and I'm not sure if I am able to do this, here is my code..
Application controller
public ActionResult AppView()
{
List<Application> apps;
using (ISiteDbContext context = _resolver.GetService<ISiteDbContext>())
{
apps = context.Applications.ToList();
}
return PartialView("AppView", apps.OrderBy(a => a.Name).ToList());
}
Render partial - this is within a view which is in the home controller.
@{Html.RenderPartial("~/Views/Application/AppView.cshtml", new Example.Services.DAL.Application());}
and my application view
@model IEnumerable<Example.Services.DAL.Application>
@{
ViewBag.Title = "Applications";
}
<h2>Applications</h2>
<p>
@Html.ActionLink("Add New Application", "Create")
</p>
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.Name)
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.ID }) |
@Html.ActionLink("Details", "Details", new { id = item.ID }) |
@Html.ActionLink("Delete", "Delete", new { id = item.ID })
</td>
</tr>
}
</table>
full error message:
The model item passed into the dictionary is of type 'Example.Services.DAL.Application', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[Example.Services.DAL.Application]'.
As error states you are passing a wrong type. Change
@{Html.RenderPartial("~/Views/Application/AppView.cshtml", new Example.Services.DAL.Application());}
to:
@{Html.RenderPartial("~/Views/Application/AppView.cshtml", new List<Example.Services.DAL.Application> { new Example.Services.DAL.Application() });}
Your AppView.cshtml
is bind to strongly type of @model IEnumerable<Example.Services.DAL.Application>
and while calling this view you are passing @{Html.RenderPartial("~/Views/Application/AppView.cshtml", new Example.Services.DAL.Application());}
It should be the list object. You must pass list
of Example.Services.DAL.Application()
Change your
@{Html.RenderPartial("~/Views/Application/AppView.cshtml", new Example.Services.DAL.Application());}
to
@{Html.RenderPartial("~/Views/Application/AppView.cshtml", new List<Example.Services.DAL.Application> { new Example.Services.DAL.Application() });}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With