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

标签 c# asp.net-mvc asp.net-mvc-3 razor html.dropdownlistfor

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

<select id="ddCustomers" data-placeholder="Choose a customer" class="chzn-select" style="width:350px;" tabindex="1" multiple>

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

@Html.DropDownListFor(m => m.Id, Model.Values, new { @disabled = "disabled" })

不幸的是,如果变量名中有一个“-”,那么它不会编译。

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

那么没有属性值的倍数呢?

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

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

最佳答案

改用下划线

@data_placeholder = "whatever"

由于 Mvc3 在渲染时“_”被替换为“-”。这也适用于 Mvc5。

这很好用,因为下划线在 html 的属性名称中是 Not Acceptable 。

关于c# - 带有自定义属性的 DropDownListFor - 在属性名称中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12759396/

相关文章:

c# - 如何在 Google 文档中获取文件夹中的所有文档

c# - 我应该只为测试目的创建新的构造函数吗?

javascript - ASP.NET MVC 如何在javascript中获取所选对象的某些字段?

c# - 当 Ninject 被用作依赖解析器时,如何在 asp.net mvc3 App 中处理 DbContext(或对象)

c# EF DbContext - 从字符串动态生成对象

c# - Windows 通用应用程序 - 从 Azure 容器下载所有 Blob

asp.net-mvc - 数据类型数据注解

asp.net - ASP.NET MVC 5 中的 Actionfilter 注入(inject)

entity-framework - 无法先使用 Entity Framework 4.1 代码更改连接字符串

jquery - ASP.NET MVC3 Jquery/Ajax 问题