我正在使用SQL Server的所有默认ASP.NET表单身份验证表(aspnet_Profile,aspnet_Roles,aspnet_Users等)。我还在我的数据库中添加了一个Employees表,其中包含一个FK到UserId上的aspnet_Users以创建一对一的关系(UserId是Employees中的PK)。 Employees表包含FirstName,LastName等的列。这是我为用户保留其他信息的一种方式。
我希望网格显示我的员工列表。它需要包含这些信息:
Roles.GetRolesForUser(username)
以下是我要在View页面中执行的操作:
<%@ Page Language="C#"
Inherits="System.Web.Mvc.ViewPage<IEnumerable<WebUI.Models.IndexModel>>" %>
<table>
<tr>
<th></th>
<th>Employee</th>
<th>Username</th>
<th>E-mail Address</th>
<th>Roles</th>
</tr>
<% foreach (var item in Model) { %>
<tr>
<td></td>
<td><%: item.FirstName %> <%: item.LastName %></td>
<td><%: item.Username %></td>
<td><%: item.Email %></td>
<td><%: item.Roles %></td> <!-- i.e., "Admin, Sales Rep" -->
</tr>
<% } %>
</table>
这是我的模特:
public class IndexModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Username { get; set; }
public string Email { get; set; }
public string[] Roles { get; set; }
}
我的控制员:
public ActionResult Index()
{
return View();
}
我的问题是,我不知道如何使用该数据加载我的模型并将其传递给我的视图。我对MVC有点新鲜,我做了一些没有运气的搜索,我想我只是在寻找错误的东西。
那么如何使用来自这些不同表的数据加载我的模型呢?
编辑:我应该提到我正在使用Entity Framework,因此我可以轻松地从Employees表中提取所有数据。
答案 0 :(得分:1)
你太近了:
public ActionResult Index()
{
IEnumerable<IndexModel> model = new List<IndexModel>(); // or from your EF Repository
return View(model);
}
我个人会将您的模型对象更改为此并相应地更新您的视图:
public class IndexModel
{
IList<UserInfo> Users { get; set; }
}
public class UserInfo // or whatever makes the most sense
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Username { get; set; }
public string Email { get; set; }
public string[] Roles { get; set; }
}
答案 1 :(得分:0)
您将模型传递到控制器中的视图中:
public ActionResult Index()
{
List<IndexModel> items = new List<IndexModel>();
// fill out list of items
return View(items);
}