Выбор между CheckBoxFor и TextBoxFor в шаблоне редактора
У меня есть шаблон редактора, который применяется к нескольким типам данных. Большинство из них отображаются TextBoxFor, но я бы хотел использовать CheckBoxFor для логических значений (они не могут иметь значение null). Как сейчас:
if (data.DataTypeName == "Boolean")
{
@Html.CheckBoxFor(m => m, new { @class = classData })
}
else
{
@Html.TextBoxFor(m => m, new { @class = classData })
}
Я получаю сообщение об ошибке в CheckBoxFor лямбда: не могу неявно преобразовать тип "объект" в "bool". Существует явное преобразование (вам не хватает приведения?). Если я пробую приведение, я получаю исключение, похожее на это: ASP.net MVC CheckBoxFor ошибка приведения. Однако я не могу использовать это решение, потому что не могу использовать член модели в этом обобщенном решении. Я собираюсь отказаться от мечты?
1 ответ
То есть ваше свойство относится к типу объекта, и вам нужно во время выполнения определить редактор для этого типа? Если это так, не используйте методы *For и явно приведите и передайте значение:
if (data.DataTypeName == "Boolean")
{
@Html.CheckBox("", (bool)Model, new { @class = classData })
}
else
{
@Html.TextBox("", (string)Model, new { @class = classData })
}