2017-04-14 48 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

而不是通過viewmodel中的選擇列表,它可以在剃刀視圖中創建,並以這種方式可以使用重載創建選擇列表來確定綁定的值。

在這個例子中,我使用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對於這種事情,像這樣:

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

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

在.data()部分對你不讀需要使用它只有當你有你需要的一些參數int函數獲得數據集