Ответ 1
Попробуйте model.Active.Value
Если это поле должно быть недействительным, вам следует изменить тип данных на стороне базы данных на not null
.
ИЗМЕНИТЬ
Почему это происходит?
Поле вашей базы данных определяется как FIELDNAME BIT NULL
. Это означает, что он может содержать три значения: NULL, true и false. Так как он может содержать три значения, он отображается на bool? тип в структуре сущности. BOOL? это другое имя Nullable<bool>
, которое является оберткой вокруг bool, что позволяет иметь третье значение: NULL. Так как CheckBoxFor ожидает одно из двух значений - true или false, это не может, кроме Nullable<bool>
. Каждый Nullable имеет свойство, называемое значением, которое возвращает завернутый тип. Но вы должны знать, что когда поле базы данных будет содержать null Nullable<bool>.Value
, выдается ошибка. Если вы уверены, что это поле не должно содержать значений NULL, вы должны изменить его тип данных на FIELDNAME BIT NOT NULL
и снова создать модель из базы данных. Это изменит тип данных из bool? для bool и не нужно будет вызывать свойство Value.