[Asp .Net MVC]如何使用Html.DropDownList

.Net MVC原生提供非常多種Html Helper給大家使用

其中最容易忘記怎麼用的就是DropDownList

假設我們希望看到的畫面如下

 

需求為

1.從後端準備好 SelectList 的內容 (選項通常來自資料庫或靜態檔案)

2.在後端決定哪個 Item 為預設 Selected

3.前端呈現時還要能自訂 SelectList 的 Css Style

4.根據 User 改變 SelectList的狀態時,做出 alert 提示

 

Controller

public ActionResult Sample()
{
    var selectList = new List<SelectListItem>()
    {
        new SelectListItem {Text="text-1", Value="value-1" },
        new SelectListItem {Text="text-2", Value="value-2" },
        new SelectListItem {Text="text-3", Value="value-3" },
    };

    //預設選擇哪一筆
    selectList.Where(q => q.Value == "value-2").First().Selected = true;

    ViewBag.SelectList = selectList;

    return View();
}

 

View

<head>
    <script src="~/Scripts/jquery-1.10.2.min.js"></script>
    <script>
        $(document).ready(function () {
            $('#selector').change(function () {
                alert($('#selector').val());
            });
        })
    </script>
</head>
<p>
    @Html.DropDownList("selector", (IEnumerable<SelectListItem>)ViewBag.SelectList, new { @style = "background-color:yellow" })
</p>

 

實際對比一下 Razor 的 HtmlHelper 幫我們自動產生的 Html Script 會長得像...

<select id="selector" name="selector" style="background-color:yellow">
    <option value="value-1">text-1</option>
    <option selected="selected" value="value-2">text-2</option>
    <option value="value-3">text-3</option>
</select>