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)

DropDownListFor optionLabel null给出了“调用是含糊的”

文档错误。不能有:

@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