У меня есть флажок, который я хочу отобразить в своем представлении, связанный с полем под названием public, которое в основном говорит, является ли конкретная строка общедоступной или нет. В базе данных это битовое поле, но оно допускает значения NULL из-за того, как раньше работала таблица.
Я использую Html.CheckBoxFor, но он жалуется об этом поле, потому что в системе это не логический тип, а скорее логический? тип. Я хочу сделать так, чтобы, если значение поля равно нулю, оно считалось ложным во внешнем интерфейсе (к сожалению, обновление самих значений базы данных невозможно).
Я попробовал использовать GetValueOrDefault и поместить значение по умолчанию в файл модели следующим образом:
public class Model
{
public bool? Public { get; set; }
public SearchModel()
{
Public = false;
}
}
однако он жаловался на это, выдавая следующую ошибку:
An exception of type 'System.InvalidOperationException' occurred in System.Web.Mvc.dll but was not handled in user code
Additional information: Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.
Поэтому я не уверен, как мне двигаться дальше. Может ли кто-нибудь помочь мне указать правильное направление?
РЕДАКТИРОВАТЬ:
Это код представления, которое я пытаюсь использовать для отображения флажка. В этом случае я добавляю некоторые дополнительные атрибуты HTML, чтобы они выглядели как переключатель, а не как простой флажок:
Html.CheckBoxFor(model => model.Public, new {data_toggle = "toggle", data_off = "No", data_on = "Yes", data_size = "small"})
Подробнее здесь: https://stackoverflow.com/questions/404 ... lable-bool