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

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


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

另外,如何在输入元素上添加自定义属性?
添加第三个参数

new { @class = "foo" }


不起作用?

是否可以使用默认助手添加数据属性?

谢谢

最佳答案

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

如果要添加类,则需要DropDown(string, IEnumerable, string, object)帮助器:

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


在这里,您还可以通过传递我已通过IEnumerableSelectList(例如null)来填充DropDownList。

是的,完全有可能传递数据属性。只需用下划线替换连字符:

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


如果您有一个要绑定所选值的模型属性,则可以传递一个lamba表达式以指示要绑定的属性,框架将生成适当的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/

10-11 19:52