4

我正在对系统进行一些修改,并且遇到了一个异常,我希望有人可以帮忙?我得到的错误如下:MVC错误:类型'System.Collections.Generic.IEnumerable`1需要的模型项目

Exception Details: System.InvalidOperationException: The model item passed into 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]'.

基本上我想要做的是显示一个非活动用户列表。这里是我写的控制器:

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()); 
      } 

     } 

从这里然后我添加了部分视图。这是它的代码,如果任何人有兴趣。只是通常的添加视图 - >列表。

<%@ 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> 

而对于完整性这里是索引页面,在这里我渲染部分:

<%@ 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> 

如果任何人有任何意见,我会非常感激:)

回答

3

嗨,我认为它是因为在您的局部视图类型为System.Web.Mvc.ViewUserControl<IEnumerable<MyApp.Data.aspnet_Users>> 但你选择的用户名

select usrs.UserName; 

return View(inactive.ToList()); 

试着改变它来选择usrs;但不包括usrs.UserName

+0

工作的一种享受。谢谢@Sanja。 – 109221793 2010-11-30 12:23:19

相关问题