出于好奇,因为它很容易解决:this documentation for DropDownListFor
说optionLabel
可以是null
。但是,如果我尝试使用optionLabel
作为null
进行编译,则会出现调用不明确的错误,因为还有一种方法可以使用object
位置和null
显然是模棱两可的。那么a)文档错误b)有一种方法来编译和指定我的意思c)文档意味着一种不同的方法optionLabel
可以是null
而不会导致调用是不明确的错误?
编辑:
我现在意识到文档当然意味着optionLabel
作为字符串变量传递的情况,总是传递null
是没有意义的。例如:
string optionLabel = null;
// Possibly do something with optionLabel
@Html.DropDownListFor(x => x.Name, selectList, optionLabel)
答案 0 :(得分:3)
文档错误。你不能拥有:
@Html.DropDownListFor(x => x.Value, Model.Values, null)
因为这与following overload
不明确。
或者如果你坚持要传递null,你可以使用命名参数消除歧义的歧义:
@Html.DropDownListFor(x => x.Name, new SelectList(null), optionLabel: null)
就个人而言,我经常使用命名参数来使代码更具可读性,因为Microsoft为HTML帮助程序编写了大量的重载。
答案 1 :(得分:0)
也许转换为字符串会解决问题?
optionLabel:(string)null