【问题标题】:How can I add a dynamic list of CSS classes to a div using 2sxc and a c# razor template?如何使用 2sxc 和 c# razor 模板将 CSS 类的动态列表添加到 div?
【发布时间】:2020-09-15 14:10:04
【问题描述】:

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

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

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

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

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

}

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

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

【问题讨论】:

    标签: razor dotnetnuke 2sxc


    【解决方案1】:

    顺便说一句:您也应该能够使用 Linq 和 string.join - ca 执行相同的操作。像这样

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

    【讨论】:

      【解决方案2】:

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

      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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-23
        • 2014-12-14
        相关资源
        最近更新 更多