簡體   English   中英

創建模型,並將其顯示在ASP.NET MVC中的網格中

[英]Creating a model, and displaying it in a grid in ASP.NET MVC

我正在使用SQL Server的所有默認ASP.NET表單身份驗證表(aspnet_Profile,aspnet_Roles,aspnet_Users等)。 我還向數據庫中添加了一個Employees表,該表包含一個FK以便對UserId上的aspnet_Users創建一對一的關系(UserId是Employees中的PK)。 員工表包含用於名字,姓氏等的列。這是我為用戶保留其他信息的一種方式。

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

  1. 員工表中的名字和姓氏
  2. 來自aspnet_Users的用戶名
  3. 來自aspnet_Membership的電子郵件
  4. 使用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有點陌生,我做了一些運氣不好的搜索,我想我只是在搜索錯誤的東西。

那么,如何使用這些不同表中的數據加載模型?

編輯:我應該提到我正在使用實體框架,所以我可以輕松地從雇員表中提取所有數據。

你是如此親密:

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

您將模型傳遞到控制器中的視圖中:

public ActionResult Index()
{
    List<IndexModel> items = new List<IndexModel>();
    // fill out list of items

    return View(items);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM