2011-12-29 56 views
0

我有一个报告,显示有以下的列的列表:MVC3 Razor中的DropDownList或DropDownListFor?

A key column 
A dropdown list showing a list of possible status 
A title 

这是剃刀代码:

@foreach (AdminSummary adminSummary in @Model.AdminSummaries) { 
       index++; 
       <div class="rep_tr0"> 
        <div class="rep_td0" id="[email protected](index)">@adminSummary.RowKey</div> 
        <div class="rep_td0"><a href="/Administration/Products/Edit?&[email protected]&[email protected]&[email protected]">Edit</a></div>    
        <div class="rep_td0"><a href="/Administration/Products/Delete?&[email protected]&[email protected]&[email protected]">Delete</a></div> 
        <div class="rep_td0">@Html.DropDownListFor(??, ??)</div> 
        </div> 
      } 

我也有下面的类:

public static class AdminStatusReference 
    { 

     public static IEnumerable<SelectListItem> GetAdminStatusOptions() 
     { 
      return new[] 
       { 
        new SelectListItem { Value = "1", Text = "Released" }, 
        new SelectListItem { Value = "2", Text = "Review" }, 
        new SelectListItem { Value = "3", Text = "New" } 
       }; 
     } 

} 

什么我不确定我是如何将这些链接起来的。我知道在我的模型可以在 状态选项的东西列表存储这样的:

vm.StatusList = GetAdminStatusOptions(); 

但我怎么可以创建下拉列表。我对DropDownList和DropDownListFor的所有选项都很困惑。我应该使用哪种方式以及如何发送状态列表?

回答

1

我不确定是如何将这些链接起来。

这取决于模型的外观。

但在这里你可以做什么:

@for (var index = 0; index < Model.AdminSummaries.Count; index++) 
{ 
    <div class="rep_tr0"> 
     <div class="rep_td0" id="[email protected](index)"> 
      @Model.AdminSummaries[index].RowKey 
     </div> 
     <div class="rep_td0"> 
      @Html.DropDownListFor(
       x => x.AdminSummaries[index].Status, 
       AdminStatusReference.GetAdminStatusOptions() 
      ) 
     </div> 
     <div class="rep_td0"> 
      @Model.AdminSummaries[index].Title 
     </div> 
    </div> 
} 
+0

感谢达林,我只是忙着纠正我的问题,你已经给了我一个答案。我现在检查一下。 – 2011-12-29 12:49:07

+0

对不起,花了这么长的时间回到你身边。 AdminSummaries如下所示:public IEnumerable AdminSummaries {get;组; }当我尝试运行代码时,出现运行时错误消息:编译器错误消息:CS0021:无法将[]的索引应用于类型为'System.Collections.Generic.IEnumerable '的表达式。 – 2011-12-29 13:30:56

+0

@ Samantha2,好的,将其更改为IList 或AdminSummary [],以便您可以通过索引访问元素。 – 2011-12-29 13:32:29