Один из способов привязки Флажок в MVC View
Сначала, когда база данных EF, логическое (битовое) поле в базе данных генерирует пустое значение bool?Свойство в сгенерированном классе.Для демонстрации у меня есть таблица с именем Dude с полями
- Идентификатор уникального идентификатора
- Имя varchar (50)
- IsAwesome bit
EF генерирует следующий класс:
namespace NullableEfDemo
{
using System;
public partial class Dude
{
public System.Guid Id { get; set; }
public string Name { get; set; }
public Nullable<bool> IsAwesome { get; set; }
}
}
Чтобы иметь возможность привязать IsAwesome к флажку, я просто расширяю класс Dude.Это сделано для того, чтобы избежать редактирования сгенерированного класса, если мне нужно его обновить.Поэтому я добавил кодовый файл DudePartial.cs в свой проект (название не имеет значения).Не забудьте объявить или использовать пространство имен проекта:
namespace NullableEfDemo
{
partial class Dude
{
public bool Awesome
{
get { return IsAwesome ?? false; }
set { IsAwesome = value; }
}
}
}
Это объявляет новое свойство Awesome типа bool, которое можно привязать к флажку в представлении редактирования
@Html.CheckBoxFor(model => model.Awesome, new { @class = "control-label" })
В HttpPost я связываю свойство моделей Awesome вместо IsAwesome.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "Id,Name,Awesome")] Dude dude)
{…