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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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