asp.net - HTML 助手 DropDownList 解释

标签 asp.net asp.net-mvc

有人可以解释一下这是如何工作的吗? (正在使用哪个重载)

@Html.DropDownList("FinancialYearID", "Select FY")

FinancialYearID 是 View 包中的 SelectList。为什么它作为字符串传递?

另外如何在输入元素上添加自定义属性?
添加第三个参数
new { @class = "foo" } 

不工作?

是否可以使用默认助手添加 data- 属性?

谢谢

最佳答案

您调用this重载。这将创建一个名为“FinancialYearID”的下拉列表(这意味着所选值将绑定(bind)到名为“FinancialYearID”的模型或 ViewBag 属性)和“选择 FY”作为占位符(空)选择文本。

如果你想添加一个类,你需要 DropDown(string, IEnumerable, string, object) helper :

@Html.DropDownList("FinancialYearID", null, "Select FY", new { @class = "foo" })

在这里,您还可以通过传入 IEnumerable 来填充 DropDownList (例如 SelectList )我通过了 null .

是的,完全可以传递数据属性。只需用下划线替换连字符:
@Html.DropDownListFor("FinancialYearID", null,
                   "Select FY", new { @data_something = "foo" })

如果您尝试将选定值绑定(bind)到模型属性,您可以传递一个 Lamba 表达式来指示您要绑定(bind)的属性,并且框架将生成适当的 name :
@Html.DropDownList(m => m.FinancialYearID, MySelectList,
                   "Select FY", new { @data_something = "foo" })

我通常还建议将 SelectList在初始 GET 请求的模型中,而不是使用 ViewBag .

关于asp.net - HTML 助手 DropDownList 解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23937439/

相关文章:

c# - asp.net 表达式生成器问题

asp.net - 查找请求是否从防火墙转发到 IIS

asp.net-mvc - 遥测初始化程序失败 : Could not load "Microsoft.AspNet.TelemetryCorrelation"

c# - Orchard 中存储的字段的技术名称在哪里?

c# - 获取 Entity Framework 中每个组的最后记录?

jquery - 是否可以保存 Kendo UI 枢轴网格的行和列的排序顺序?

c# - 如何将使用 ClientScriptManager.RegisterArrayDeclaration 创建的 javascript 数组返回给服务器?

c# - 在图表控件中突出显示数据点

asp.net-mvc - MVC WebGrid 设置呈现的ID

c# - 有选择地使用默认的 JSON 转换器