2011-01-05 13 views
1

SQL Server用のすべてのデフォルトASP.NETフォーム認証テーブル(aspnet_Profile、aspnet_Roles、aspnet_Usersなど)を使用しています。また、私のデータベースにEmployeesテーブルを追加しました。このテーブルには、UserId上のaspnet_UsersにFKが含まれ、1対1の関係を作成します(UserIdは従業員のPKです)。 Employeesテーブルには、FirstName、LastNameなどの列が含まれています。ユーザーの追加情報を保持する方法です。モデルを作成し、ASP.NET MVCのグリッドに表示

私は従業員の私のリストをグリッド表示したいと思います。これは、この情報が含まれている必要があります

  1. 、姓と名の従業員テーブルから
  2. ユーザー名をaspnet_Users
  3. から
  4. Roles.GetRolesForUser(username)を使用したユーザーがあるaspnet_Membership
  5. 役割のカンマ区切りのリストからの電子メール、

は、ここで私は私の見解ページをどうしたいものです。

ここ

は私のモデルです:

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にとっては少し新しく、運がないところで検索しています。間違ったことを探しているだけです。

どうすればこれらのテーブルのデータをモデルにロードできますか?

EDIT:私はEntity Frameworkを使用しているので、Employeesテーブルからすべてのデータを簡単に取得できます。

答えて

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); 
} 
関連する問題