Почему CheckBox для создания ошибки во время выполнения - PullRequest
12 голосов
/ 22 марта 2010

Поле, к которому подключен CheckBox, является обнуляемым.

На мой взгляд, я получаю следующую ошибку:

Не удается неявно преобразовать тип 'bool?'в 'bool'

<%= Html.CheckBoxFor(model => model.Product.Exclusive) %>

Как это исправить, не меняя структуру базы данных?

1 Ответ

18 голосов
/ 22 марта 2010

Исключительно не может быть Nullable, это не имеет смысла для ViewEngine при оценке выражения. Он должен либо поставить, либо не ставить галочку, а также ответить значением true или false. Ваша модель должна иметь значение bool, но это не значит, что ваша база данных должна это знать. Вам просто нужно сделать перевод где-то между базой данных и моделью, например. Model.Exclusive = DAO.Exclusive ?? false.

Не зная, что представляет ноль в вашей схеме данных или как вы генерируете объекты модели, трудно дать вам намного больше деталей, чем это.

Изменить: не проверял это, но вы можете получить что-то такое простое, как

public bool NoNullExclusive
{
    get { return Exclusive ?? false; }
    set { Exclusive = value; }
}

и замена

<%= Html.CheckBoxFor(model => model.Product.Exclusive) %>

с

<%= Html.CheckBoxFor(model => model.Product.NoNullExclusive) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...