如何在文本框或下拉列表中添加ID

时间:2014-04-30 13:33:19

标签: asp.net-mvc asp.net-mvc-4 twitter-bootstrap

在我看来,我有文本框和下拉菜单,我正在尝试添加一个类,以便我可以将bootstrap主题应用到我的字段。这是我的代码:

        <div class="form-group">
        @Html.LabelFor(model => model.ID, new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.DropDownList("ID", String.Empty)
            @Html.ValidationMessageFor(model => model.ID)
        </div>
    </div>

如何向此class="from-controller"声明类我尝试了此@Html.DropDownList("ID", new {class="test"})但是我收到了错误消息。任何人都可以告诉我原因。

3 个答案:

答案 0 :(得分:1)

DropDownList Method的第二个参数是IEnumerable<SelectListItem>,因此您的下拉列表必须如下所示:

@Html.DropDownList("ID", new SelectList(Model.CollectionOfIds, "DataValueField", "DataTextField"),
    new { @class= "from-controller" })

答案 1 :(得分:0)

第一个参数是名称而不是ID。如果要指定id,则必须以指定类的方式执行。

 @Html.DropDownList("ddlName", new SelectList(Model.Items, "Key", "Value"), "Please select", new { @class = "className", @id="yourId" })

新的SelectList(Model.Items,&#34; Key&#34;,&#34; Value&#34;)适用于

Dictionary<int, string> 

答案 2 :(得分:0)

首先:

class是c#语言的保留关键字。如果你想在C#中使用像变量名这样的保留关键字,你应该把变量名之前的 @ 符号放到编译器中,忽略它也是一个关键字的事实。

在您的情况下,您必须在课程关键字

之前添加 @
new {@class="test"})

第二名:

没有Html.DropDownList(字符串,字符串)或Html.DropDownList(字符串,字符串,对象)的定义

第二个参数必须是IEnumerable

如果你想设置一个空列表(我不会低估为什么你设置一个String.Empy值)使用Enumerable.Empty()

@Html.DropDownList("ID", Enumerable.Empty<SelectListItem>())