2011-12-29 14 views
0

私は、次の列のリストを表示するレポートがあります。MVC3 RazorのDropDownListまたはDropDownListFor?

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

} 

何を:私も次のクラスを持っている

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

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

これはかみそりのコードです私はこれらをどのように結びつけることができるかわからない。

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

おかげダーリン、私は私の質問を修正するだけで忙しかった、あなたはすでに私に答えを与えました。私はこれを今チェックアウトするでしょう。 –

+0

ご迷惑をおかけしました。 AdminSummariesは次のとおりです。public IEnumerable AdminSummaries {get;セット; }コードを実行しようとすると、ランタイムエラーメッセージが表示されます。コンパイラエラーメッセージ:CS0021:[']でインデックス付けを' System.Collections.Generic.IEnumerable 'の式に適用できません –

+0

@ Samantha2、OK、これを 'IList 'または 'AdminSummary []'に変更して、インデックスで要素にアクセスできるようにします。 –