MVC использует Html.CheckBoxFor с нулевым BoolC#

Место общения программистов C#
Anonymous
MVC использует Html.CheckBoxFor с нулевым Bool

Сообщение Anonymous »

У меня есть флажок, который я хочу отобразить в своем представлении, связанный с полем под названием 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

Вернуться в «C#»