CheckBoxFor - невозможно преобразовать лямбда-выражение в предполагаемый тип делегата - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь включить флажок в моем представлении.Вот что у меня есть в моем представлении:

    @Html.CheckBoxFor(model => model.Chart)

Обратите внимание, я получаю следующее: Невозможно преобразовать лямбда-выражение в предполагаемый тип делегата, потому что некоторые из возвращаемых типов в блоке неявно не конвертируются в возвращаемый делегат.введите.

В моей модели есть следующее:

    public bool ? Chart { get; set; }

Обратите внимание, что Chart является логическим значением, допускающим обнуление.

Я также попытался сделать следующее:

    @Html.CheckBoxFor(model => model.Chart.Value)

Но я получаю: обнуляемый объект должен иметь значение.

1 Ответ

0 голосов
/ 07 июня 2018

Вы не можете использовать CheckBoxFor() для привязки к bool? (обнуляемому).Метод принимает bool в качестве выражения.

Флажок имеет 2 состояния (вкл / из или true/false), а bool? имеет 3 состояния (true/false/null).

Обратите внимание, что подпись метода:

public static MvcHtmlString CheckBoxFor<TModel>(
    this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, bool>> expression)

Чтобы связать с bool?, используйте @Html.EditorFor(), который создаст раскрывающийся список, содержащий 3 значения.

В качестве альтернативы, если вы хотитеустановите флажок, затем используйте модель представления и создайте свойство bool.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...