mayank.bhuvnesh Ответов: 1

Создать список чекбоксов с помощью editortemplate?


я пытаюсь создавать фильтры, как на сайтах электронной коммерции, таких как Amazon, Flipkart.

Я создал первичные таблицы для всех фильтров, как показано ниже.

create table Work
(
id int identity(1,1) Primary Key Not Null,
work_name varchar(30) Not Null,
isSelected bit Default(0),
created_date Datetime default(GETDATE())
)


Теперь я хочу создать список флажков, чтобы пользователь мог фильтровать продукты в соответствии с выбранными деталями.

Что я уже пробовал:

Я создал шаблон редактора

@model API.Models.Work

@Html.HiddenFor(x=>x.id)
@Html.HiddenFor(x => x.work_name)
@Html.CheckBoxFor(x=>(bool)x.isSelected)    
@Html.DisplayFor(x=>x.work_name)


Я использую шаблон как

@model IEnumerable<API.Models.Work>

@Html.EditorForModel()


Я получаю следующую ошибку

Исключение типа "система".InvalidOperationException ' произошло в System.Web.Mvc.dll но не был обработан в пользовательском коде

Дополнительная информация: шаблоны можно использовать только с доступом к полю,доступом к свойствам, индексом одномерного массива или однопараметрическими пользовательскими выражениями индексатора.

F-ES Sitecore

Возможно, вам придется создать новый класс модели для данных, который позволяет IsSelected быть bool, а не битом, а затем скопировать данные из вашей таблицы в этот класс и использовать этот класс в качестве модели представления.

1 Ответов

Рейтинг:
2

Bohdan Stupak

В вашем шаблоне попробуйте

@{
var convertedIsSelector = (bool)Model.isSelected
}
@Html.CheckBoxFor(x => convertedIsSelector)

вместо
@Html.CheckBoxFor(x=>(bool)x.isSelected) 

Не уверен, Нужно ли вам вообще бросать в bool явно.
Также дружеский совет. Обратите внимание,что некоторые из ваших свойств используют подчеркивание, а некоторые-верблюжий регистр. Так неэстетично.