DropDownListFor optionLabel null给出了“调用是含糊的”
本文关键字:调用 null optionLabel DropDownListFor | 更新日期: 2023-09-27 18:01:27
出于好奇,因为这很容易解决: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)
文档错误。不能有:
@Html.DropDownListFor(x => x.Value, Model.Values, null)
,因为这与following overload
有歧义。
或者,如果你坚持要传递null,你可以使用命名参数来消除重载的歧义:
@Html.DropDownListFor(x => x.Name, new SelectList(null), optionLabel: null)
我个人经常使用命名参数来使代码更易读,因为微软为HTML helper编写了大量的重载。
也许转换为字符串将解决这个问题?
optionLabel:(string)null