我是MVC的新手,很抱歉,如果我有点厚。我正在使用VB
我正在尝试使用数据库中的数据填充html下拉列表,但无论如何都会始终选择第一项。
我做错了什么?
这是我的代码 - 在控制器中:
ViewData("MatchTypeList") = New SelectList(_db.GetMatchTypes.ToList(), "MatchTypeID", "MatchTypeName", SelectedValue)
在视图中
<%= Html.DropDownList("MatchType", CType(ViewData("MatchTypeList"), IEnumerable(Of SelectListItem)), "Any", New With {.class = "forminput"})%>
答案 0 :(得分:0)
这是mvc的一个问题。一种解决方法是将下拉列表的名称更改为除属性名称之外的任何名称。然后,在提交之前将名称更改回属性的真实名称。
一个例子:
<script type="text/javascript">
$(function () {
$("form").submit(function () {
$("select").each(
function () {
$(this).attr("name", $(this).attr("name").replace(/ZZZ/, ''));
});
});
});
</script>
<%= Html.DropDownList("MatchTypeZZZ", CType(ViewData("MatchTypeList"), IEnumerable(Of SelectListItem)), "Any", New With {.class = "forminput"})%>
我在我的母版页中放置了javascript(它使用JQuery),因此应用程序中任何具有下拉列表的表单都可以安全地将其名称附加到ZZZ,然后在提交时将其设置回原始名称。