如何使用2sxc和C#剃刀模板向div添加CSS类的动态列表?

问题描述

这主要是一个C#Razor问题,但我提供了一些详细信息以帮助理解该问题。基本上,我想为2sxc应用程序列表中的卡片分配一堆CSS类。

使用2sxc App,我有一个显示标题图片的“职业”列表。我还有一个带有过滤器按钮的边栏,以便用户可以过滤结果。例如,他们将过滤“学校类别”或“省”。

我正在使用C#剃刀模板来输出此职业列表。我还使用了一个名为MixItUp的JavaScript来对列表进行排序和过滤。 MixItUp期望我将HTML中的CSS类分配给每张职业卡,以便它知道要过滤的内容。在我的2sxc应用程序中,我有一个名为“职业”的内容类型,然后是另一个名为“学校类别”的内容类型。在“职业”内容类型中,我有一个“学校类别”的实体字段,因此我可以为每个职业分配多个学校类别。

我遇到的问题是C#剃刀模板中的问题:在我的职业卡清单循环中,我创建了另一个循环以获取学校类别。看起来像这样:

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

}

但是我不知道如何获取代码的结果并将其添加到职业卡div中?我尝试了各种不同的操作,例如将for-each部分设为变量,但似乎无法在循环外部使用此变量供外部模板使用。

在这种情况下如何分配这些类?

解决方法

顺便说一句:您还应该能够使用Linq和string.join-ca。像这样

@ { var schoolFilter = string.Join(“”,AsList(carrer.Categories作为对象) .Select(c =>“ filter-” + c.SchoolCategory.ToLower()。Replace(“”,“-”))); }

,

我的朋友/开发人员帮助解决了问题,我们找到了答案。

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>