0

我是 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"})%>
4

1 回答 1

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,然后在提交时设置回其原始名称。

于 2010-05-12T18:38:01.647 回答