DropDownListFor带有自定义属性 - 在属性名称中?

Ste*_*ger 33 c# asp.net-mvc html.dropdownlistfor razor asp.net-mvc-3

问题:我需要创建一个这样的下拉列表:

<select id="ddCustomers" data-placeholder="Choose a customer" class="chzn-select" style="width:350px;" tabindex="1" multiple>
Run Code Online (Sandbox Code Playgroud)

现在我可以像这样添加自定义属性:

@Html.DropDownListFor(m => m.Id, Model.Values, new { @disabled = "disabled" })
Run Code Online (Sandbox Code Playgroud)

不幸的是,如果变量名中有" - ",那么它就不会编译.

@Html.DropDownListFor(m => m.Id, Model.Values, new { @disabled = "disabled", @data-placeholder = "whatever" })
Run Code Online (Sandbox Code Playgroud)

那么多重,没有属性值呢?

如果我传递Dictionary或NameValueColletion而不是new { @disabled = "disabled" },则它输出NameValueColletion/Dictionary的属性...

如何在属性键中传递带有特殊字符的属性?

dov*_*ove 69

请改用下划线

@data_placeholder = "whatever"
Run Code Online (Sandbox Code Playgroud)

由于Mvc3"_"在渲染时被替换为" - ".

这很好用,因为html中的属性名称不接受下划线.