我正在对系统进行一些修改,并且遇到了一个异常,我希望有人可以帮助解决?我收到的错误如下:
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]'.
基本上我想要做的是显示非事件用户的列表。这是我为此编写的 Controller :
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());
}
}
从这里我添加了一个部分 View 。如果有人感兴趣的话,这是它的代码。只是通常的添加 View --> 列表。
<%@ 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>
如果有人有任何建议,我将非常感激:)
最佳答案
嗨,我认为这是因为在您的部分 View 中类型是 System.Web.Mvc.ViewUserControl<IEnumerable<MyApp.Data.aspnet_Users>>
但您选择用户名
select usrs.UserName;
return View(inactive.ToList());
尝试更改它以选择用户;但不是 usrs.UserName
关于asp.net-mvc - MVC错误: model item of type 'System.Collections.Generic.IEnumerable` 1 required,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4313518/