asp.net MVC:如何向HTML.Dropdownlist添加选项

时间:2010-06-30 08:28:55

标签: asp.net-mvc

我在查看中有Html.DropDownList元素。

<%= Html.DropDownList("ID", (IEnumerable<SelectListItem>)ViewData["VItemID"])%>

在控制器中:

 ViewData["VItemID"] = new SelectList(_dataManager.myItems.getItems(), "ID", "ItemID");

我想用text =“----”添加选项。我想在视图层中进行。

我用jquery完成了这个,但我认为使用js代码来解决问题并不是一个好主意。

这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:3)

您可以使用proper helper overload

<%= Html.DropDownList(
    "ID", 
    (IEnumerable<SelectListItem>)ViewData["VItemID"], 
    "--- Please Select a Value ---")
%>

答案 1 :(得分:1)

最好的方法是在模型中执行此操作,并使用默认值创建SelectItemList。如果你坚持在View中执行它,那么JQuery与其他任何方法一样有效。

答案 2 :(得分:0)

自定义ViewData [“VHouseTypes”]功能。

    public string GetDDLClients(int id)
    {
        string format = "<option value=\"{0}\" {2} >{1}</option>";
        StringBuilder sb = new StringBuilder();
        //string format = "<option value=\"{0}\">{1}</option>";
        string formatSelected = "<option value=\"{0}\" selected=\"selected\">{1}</option>";
        List<Highmark.BLL.Models.Client> client = Highmark.BLL.Services.ClientService.GetAll("", false);
        sb.AppendFormat(formatSelected, "Select", "All Clients");

        foreach (var item in client)
        {
            if (item.ClientID == id)
                sb.AppendFormat(format, item.ClientID, item.CompanyName, "selected=\"selected\"");
            else
                sb.AppendFormat(format, item.ClientID, item.CompanyName, "");
        }

        return sb.ToString();
    }