我正在尝试使用内置的成员资格提供程序生成一个显示用户及其角色列表的视图。
我的模型和控制器正在接收用户和角色,但我在浏览器中显示它们时遇到了问题。
模型
public class AdminViewModel
{
public MembershipUserCollection Users { get; set; }
public string[] Roles { get; set; }
}
控制器
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>
答案 0 :(得分:1)
就像安德鲁所说,你需要让你的视图继承自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>
<% }%>
答案 1 :(得分:0)
它有什么问题? 请确保在调试器下填充了放入模型的列表(非空)。
顺便说一下:
foreach (var item in Model)
看起来像你提到的
foreach (var item in Model.Users)