Как я могу добавить динамический список классов CSS в div, используя 2sxc и шаблон с # razor?

В основном это вопрос по C # Razor, но я включил подробности, чтобы помочь разобраться в проблеме. По сути, я хочу назначить кучу классов CSS для карточек в листинге в приложении 2sxc.

Используя приложение 2sxc, у меня есть список вакансий с названием и изображением. У меня также есть боковая панель с кнопками фильтра, чтобы пользователи могли фильтровать результаты. Например, они будут фильтровать по категории школы или провинции.

Я использую шаблон бритвы C # для вывода этого списка профессий. Я также использую javascript под названием MixItUp для сортировки и фильтрации списка. MixItUp ожидает, что я назначу классы CSS в HTML каждой карточке карьеры, чтобы он знал, что фильтровать. В моем приложении 2sxc у меня есть тип контента под названием «Карьера», а затем другой тип контента под названием «Категория школы». В типе контента «Карьера» у меня есть поле сущности для категории школы, поэтому я могу назначить несколько категорий школ для каждой карьеры.

Проблема, с которой я столкнулся, заключается в моем шаблоне бритвы C #: в цикле списка карточек карьеры я создал еще один цикл для получения категорий школ. Это выглядит так:

if (career.Categories.Count > 0) {
   foreach(var schoolCategory in AsList(career.Categories as object)){
            @Html.Raw(".filter-" + schoolCategory.SchoolCategory.ToLower().Replace(" ","-") + " ")
    }

}

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

Как я мог назначить эти классы в таком случае?


person Aaron - Wolf X Machina    schedule 15.09.2020    source источник


Ответы (2)


Кстати: вы также должны иметь возможность сделать то же самое, используя Linq и string.join - ca. нравится

@ {var schoolFilter = string.Join (, AsList (carrer.Categories as Object) .Select (c = ›filter- + c.SchoolCategory.ToLower (). Replace (, -));}

person iJungleBoy    schedule 15.09.2020

Мой друг / разработчик помог устранить неполадки, и мы нашли ответ.

var schoolFilter = "";
if (career.Categories.Count > 0) {
   foreach(var schoolCategory in AsList(career.Categories as object)){
        schoolFilter += "filter-" + schoolCategory.SchoolCategory.ToLower().Replace(" ","-") + " ";
    }} 
<div class="mix @schoolFilter">card</div>
person Aaron - Wolf X Machina    schedule 15.09.2020