I am making some changes to the system and I came across the exception that I was hoping someone could help with this? The error I am getting is the following:
Exception Details: System.InvalidOperationException: The model element passed to the dictionary is of type 'System.Collections.Generic.List 1[System.String]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable 1 [MyApp.Data.aspnet_Users] '.
Basically, what I want to do is display a list of inactive users. Here is the controller I wrote for this:
public ActionResult InactiveUsers() { using (ModelContainer ctn = new ModelContainer()) { aspnet_Users users = new aspnet_Users(); DateTime duration = DateTime.Now.AddDays(-3); var inactive = from usrs in ctn.aspnet_Users where usrs.LastActivityDate <= duration orderby usrs.LastActivityDate ascending select usrs.UserName; return View(inactive.ToList()); } }
From here I added a partial view. Here is the code for it if anyone is interested. Just plain Add View -> List.
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<MyApp.Data.aspnet_Users>>" %> <table> <tr> <th></th> <th> ApplicationId </th> <th> UserId </th> <th> UserName </th> <th> LoweredUserName </th> <th> MobileAlias </th> <th> IsAnonymous </th> <th> LastActivityDate </th> </tr> <% foreach (var item in Model) { %> <tr> <td> <%: Html.ActionLink("Edit", "Edit", new { id=item.UserId }) %> | <%: Html.ActionLink("Details", "Details", new { id=item.UserId })%> | <%: Html.ActionLink("Delete", "Delete", new { id=item.UserId })%> </td> <td> <%: item.ApplicationId %> </td> <td> <%: item.UserId %> </td> <td> <%: item.UserName %> </td> <td> <%: item.LoweredUserName %> </td> <td> <%: item.MobileAlias %> </td> <td> <%: item.IsAnonymous %> </td> <td> <%: String.Format("{0:g}", item.LastActivityDate) %> </td> </tr> <% } %> </table> <p> <%: Html.ActionLink("Create New", "Create") %> </p>
And for completeness, the Index page is indicated here, where I do a partial:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Administrator.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> Index </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <h2>Index</h2> <% Html.RenderAction("InactiveUsers"); %> </asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="Header" runat="server"> </asp:Content>
If anyone has any advice, I would be very grateful :)