我有一个继承自ViewModel的ASP.Net MVC视图。 ViewModel包含模型中两个实体的数据:
public PaginatedList<Entry> Entries { get; private set; }
public SelectList ColumnValues { get; private set; }
这两个属性在视图上使用,该视图基于列表模板。 该列表遍历条目列表并为每个列表显示一个表行。在该行的一个表格单元格中,一个DropDownList是从ViewModel的 ColumnValues 中填充的。
我可以使用以下方法让DropDownList设置它的所选项目:
@Html.DropDownList("ColumnValue", Model.ColumnValues)
这将呈现页面,每个行中有一个DropDownList。但是,所选值始终设置为第一行的“ColumnValue”,对于所有行都是如此。
我将如何修改我的代码,以便DropDownList的选定值与每个个别条目的ColumnValue匹配。
目的是生成一种可编辑的数据网格,其中包含使用AJAX回发每行更改的链接。
答案 0 :(得分:0)
我们假设ViewData["ColumnValue"] = "5"
。现在,在ColumnValues
选择列表中,您需要有一个值为“5”的项目,它将自动被选中。例如:
ColumnValues = new SelectList(new[] {
new SelectListItem { Value = "1", Text = "Item 1" },
new SelectListItem { Value = "2", Text = "Item 2" },
new SelectListItem { Value = "3", Text = "Item 3" }
}, "Value", "Text");
然后ViewData["ColumnValue"] = "2"
会自动预选第二项。
答案 1 :(得分:0)
在视图中使用DropDownListFor()并将 selectList 设置为以下作品:
new SelectList(Model.ColumnValues,"ColumnValue","ColumnValue", item.associatedField)
这似乎不是一种很好的做事方式,但它有效。这是目前最重要的事情。任何进一步的评论将不胜感激。
答案 2 :(得分:0)
您可以在Set Class Attribute for certain records of Dropdownlist in MVC4上的更新代码(更新代码 - 用于MyDropdownListFor)中指示创建自定义html帮助程序,并使用“Selected”属性作为Class属性。 希望这会有所帮助。