问题描述
这主要是一个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>