2013-03-19 64 views
0

我试图从控制器传递一个列表到一个视图。我用断点检查了控制器端,一切似乎都没有问题。问题在于。我只获得列表中所有位置的列表的最后一个元素。传递列表来查看

例如

列表在控制器是:1,2,3,4,5

鉴于列表是:5,5,5,5,5

控制器代码:

 if (Request.IsAuthenticated) 
     { 
      AdminController AC = new AdminController(); 
      List<ShowAllMessagesModel> SAMM = new List<ShowAllMessagesModel>(); 
      SAMM = AC.showAllMessages(); 
      ViewData["myList"] = SAMM; 
      return PartialView(); 
     } 

视图代码:

<% var list = ViewData["myList"] as List<sms.Models.ShowAllMessagesModel>; %> 
<%= list.Count %> 
<% 
    for (int i = 0; i < list.Count ; i++) 
    { 
    %> 
    <li>MsgId : <%= list.ElementAt(i).MessageId%> Sender : <%= list.ElementAt(i).Sender%></li> 
    <% } %> 

有什么建议吗?

+0

使用'名单 SAMM = AC.showAllMessages();' - 你不t需要创建一个实例,该实例立即被遗忘。 – Igor 2013-03-19 02:00:11

+0

没有做任何事..列表得到的通过它是相同的大小..但在每个位置它是列表的最后一项..这就是问题 – 2013-03-19 07:39:47

回答

2

显然你需要实例列表中的每一个元素,否则会每次插入相同的元素:)

List<var> examplelist = new List<var>(); 

for (int i =0 ; i <=10 ; i++) 
{ 
    var = new var(); 
    exampleList.Add(var); 
}