2011-01-05 47 views
1

我使用SQL Server的所有默認ASP.NET窗體身份驗證表(aspnet_Profile,aspnet_Roles,aspnet_Users等)。我還爲我的數據庫添加了一個Employees表,該表包含UserId上的FK到aspnet_Users以創建一對一關係(UserId是Employees中的PK)。 Employees表包含FirstName,LastName等的列。這是我爲用戶保留附加信息的一種方式。創建一個模型,並將其顯示在一個網格中ASP.NET MVC

我想要一個網格顯示我的員工列表。它需要包含以下信息:從aspnet_Membership

  • 從aspnet_Users

    1. 名和姓Employees表
    2. 用戶名
    3. 電子郵件使用Roles.GetRolesForUser(username)角色的逗號分隔列表中的用戶在發現

    這是我想用我的瀏覽頁面做什麼:

    <%@ 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有點新,而且我已經做了一些搜索,但沒有運氣,我想我只是在尋找錯誤的東西。

    那麼我怎樣才能加載我的模型與來自這些不同的表的數據?

    編輯:我應該提到我使用實體框架,所以我可以輕鬆地從僱員表中拉出所有數據。

  • 回答

    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; } 
    } 
    
    0

    你通過模型到您的視圖控制器:

    public ActionResult Index() 
    { 
        List<IndexModel> items = new List<IndexModel>(); 
        // fill out list of items 
    
        return View(items); 
    } 
    
    相關問題