我有一个集合,我在控制器MenuitemDetails中填充,这会在视图模型上填充一个属性。
该集合有3个属性和多个记录 Id,Title和State
State是一个整数值,它与下拉列表选择的值有关。
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 :(得分: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)))
答案 1 :(得分: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()部分中,只有在获得数据集的函数中需要一些参数时才需要使用它