2017-04-14 27 views
0

コントローラMenuitemDetailsに読み込まれたコレクションがあり、ビューモデルのプロパティに値が設定されます。ASP.NET MVC5は、ビュー内のループ内のドロップダウンリストの値を設定します。

コレクションは

状態値を選択し、ドロップダウンリストに関連する整数値で3つの特性および複数のレコード ID、タイトル及び状態を有します。

viewmodelには、ビューのドロップダウンリストアイテムを設定するために使用されるselectListプロパティ(stateList)も含まれています。

私は編集アクションのためのフォームを再投入しようとしている - 同じドロップダウン項目の選択と

<table> 
     @for (int counter = 0; counter < Model.MenuitemDetails.Count; counter++) 
     {     
      <tr> 
       <td> 
        @Model.MenuitemDetails[counter].Title 
        @Html.DropDownListFor(i => Model.MenuitemDetails[counter].state, Model.stateList)       
       </td> 
       <hr /> 
      </tr> 
     }     
    </table> 

私はドロップダウンの値が選択された適切な値を表示するように見えることはできません。

答えて

0

ビューモデルで選択リストを渡すのではなく、かみそりビューで作成することができます。この方法で、選択リストを作成してバインドする値を決定するオーバーロードを使用できます。

この例では、私はtelerik mvcドロップダウンリストを使用していますが、同じことが剃刀にselectListを作成し、バインドするプロパティでその状態を決定するという点でも同じです。

  @(Html.Kendo().DropDownListFor(m => m.Entity.ProductId) 
             .DataTextField("Text") 
             .DataValueField("Value") 
             .Filter("contains") 
             .HtmlAttributes(new { @class = "form-control" }) 
             .BindTo(new SelectList(Model.Products, "Id", "FullName", Model.Entity.ProductId))) 
0

また、そのようなもののこの種のためeditortemplateを使用しようとすることができます:あなたが持っている場合にのみ、それを使用する必要がありますあなたがいけないの読み取りに.dataの()の部分では

@(Html.Kendo().DropDownListFor(m => m) 
         .OptionLabel("--Select Value--") 
         .DataSource(source => 
         { 
          source.Read(read => 
          { 
           read.Action("MethodName", "ControllerName").Data("dataforMethod"); 
          }); 

         }) 
         .Enable(true) 
         .AutoBind(true) 
) 

データセットを取得するために必要ないくつかのパラメータ

関連する問題