2010-05-13 18 views
3

我想產生一個視圖來顯示使用內置的成員資格提供用戶列表和用戶的角色和作用。使用列表中的成員資格提供

我的模型和控制器拿起用戶和角色,但我有我的視圖中顯示他們的麻煩。

型號

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

...和你有什麼樣的麻煩? – 2010-05-13 15:25:50

+0

在我看來,我得到錯誤... Account.Models.AdminViewModel」不包含定義‘用戶名’和沒有擴展方法‘用戶名’,接受類型的第一個參數‘Account.Models.AdminViewModel’可尋(你是否缺少使用指令或程序集引用?) – Jemes 2010-05-13 15:35:31

回答

0

它是什麼樣的麻煩? 請確保在調試器中列出您放入模型的內容已填充(非空)。

順便說一句:

foreach (var item in Model) 

看起來像你提到的

foreach (var item in Model.Users) 
+0

當我使用foreach(Model.Users中的var項)時,我沒有選擇用戶模型。 – Jemes 2010-05-13 15:34:00

+0

當我調試站點時,我的控制器中的模型具有用戶和角色的值。 – Jemes 2010-05-13 15:56:18

+0

請從您的模型類型定義中移除IEnumerable <...>。您只傳遞一個AdminViewModel實例Inherits =「System.Web.Mvc.ViewPage > – 2010-05-13 16:11:25

1

就像安德魯說,你需要從AdminViewModel,不IEnumerable<AdminViewModel>讓你查看繼承。一旦被糾正,你需要遍歷Model.Users,而不是在你的foreachModelModel.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> 

<% }%> 
+0

我已經刪除了IEnumerable並添加了Model.Users,但我現在正在收到錯誤消息。 ..「對象」不包含在「用戶名」和沒有擴展方法「用戶名」接受型「對象」的第一個參數的定義可以找到(是否缺少using指令或程序集引用? – Jemes 2010-05-14 10:12:18

+0

請發表您的更新碼。 – 2010-05-14 16:52:49

相關問題