2010-05-12 27 views
0

我是MVC的新手,很抱歉如果我有點厚。我正在使用VBMVC中的html下拉列表中的SelectedValue

我正在嘗試使用數據庫中的數據填充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

這是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在我的母版頁,因此任何形式,有一個下拉列表中的應用程序可以安全地將其名稱附有ZZZ,然後重新設置爲(它用了jQuery)它的原始名稱在提交。