2017-04-14 53 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函数获得数据集