我正在尝试使用内置的成员资格提供程序生成一个 View 以显示用户及其角色的列表。
我的模型和 Controller 正在提取用户和角色,但是在我的 View 中显示它们时遇到了麻烦。
模型
public class AdminViewModel
{
public MembershipUserCollection Users { get; set; }
public string[] Roles { get; set; }
}
Controller
public ActionResult Admin()
{
AdminViewModel viewModel = new AdminViewModel
{
Users = MembershipService.GetAllUsers(),
Roles = RoleService.GetRoles()
};
return View(viewModel);
}
查看
Inherits="System.Web.Mvc.ViewPage<IEnumerable<Account.Models.AdminViewModel>>"
<table>
<tr>
<td>UserName</td>
<td>Email</td>
<td>IsOnline</td>
<td>CreationDate</td>
<td>LastLoginDate</td>
<td>LastActivityDate</td>
</tr>
<% foreach (var item in Model) { %>
<tr>
<td><%=item.UserName %></td>
<td><%=item.Email %></td>
<td><%=item.IsOnline %></td>
<td><%=item.CreationDate %></td>
<td><%=item.LastLoginDate %></td>
<td><%=item.LastActivityDate %></td>
<td><%=item.ROLE %></td>
</tr>
<% }%>
</table>
最佳答案
就像安德鲁所说的那样,您需要使View继承自AdminViewModel
,而不是IEnumerable<AdminViewModel>
。纠正之后,您需要遍历Model.Users
而不是Model
中的foreach
。 Model.Users
将包含具有Username属性的MembershipUser
对象。
<% foreach (var item in Model.Users) { %>
<tr>
<td><%=item.UserName %></td>
<td><%=item.Email %></td>
<td><%=item.IsOnline %></td>
<td><%=item.CreationDate %></td>
<td><%=item.LastLoginDate %></td>
<td><%=item.LastActivityDate %></td>
<td><%=item.ROLE %></td>
</tr>
<% }%>
关于asp.net-mvc - 使用成员资格提供程序的用户和角色列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2827957/