C# 将类实例化为razor宏(不工作)

C# 将类实例化为razor宏(不工作),c#,linq,razor,macros,umbraco,C#,Linq,Razor,Macros,Umbraco,我在我的网站的app_代码部分创建了一个类,并将该类实例化到我的宏中,但它似乎不起作用。我在winform应用程序中测试了linq和功能,似乎按照我想要的方式工作。。。只是似乎没有使用宏进行渲染,以下是我所拥有的: 宏: @using umbraco.MacroEngines @using umbraco.MacroEngines.Library; @inherits umbraco.MacroEngines.DynamicNodeContext @{ DynamicNodeLis

我在我的网站的app_代码部分创建了一个类,并将该类实例化到我的宏中,但它似乎不起作用。我在winform应用程序中测试了linq和功能,似乎按照我想要的方式工作。。。只是似乎没有使用宏进行渲染,以下是我所拥有的:

宏:

@using umbraco.MacroEngines 
@using umbraco.MacroEngines.Library;
@inherits umbraco.MacroEngines.DynamicNodeContext 

@{
    DynamicNodeList pages = @Model.Children.Where("Visible").OrderBy("CreateDate desc");  
}

@{
    Common com = new Common();

    List<string> tags = new List<string>();

    string[] top10 = @com.GetTop10Tags(@pages);

    foreach(string tag in @top10)
    {
         <ul>@tag</ul>
    } 
}
@使用umbraco.MacroEngines
@使用umbraco.MacroEngines.Library;
@继承umbraco.MacroEngines.dynamicontext
@{
DynamicNodeList页面=@Model.Children.Where(“可见”).OrderBy(“CreateDate desc”);
}
@{
公共com=新公共();
列表标签=新列表();
字符串[]top10=@com.GetTop10Tags(@pages);
foreach(@top10中的字符串标记)
{
    @tag
} }
应用程序代码-通用类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using umbraco.MacroEngines;
using umbraco.MacroEngines.Library;

public class Common 
{
    public string[] GetTop10Tags(DynamicNodeList pages)
    {
        List<string> tags = new List<string>();

        foreach (var node in pages)
        {
            string[] aTags = node.GetPropertyValue("postTags").Split(',');

            foreach (string tag in aTags)
            {
                tags.Add(tag);
            }
        }

        string[] orderedList = tags
            .GroupBy(i => i)
            .OrderByDescending(g => g.Count())
            .Select(g => g.Key).Take(10).ToArray();

        return orderedList;
    } 
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用umbraco.macro发动机;
使用umbraco.MacroEngines.Library;
公共类
{
公共字符串[]GetTop10Tags(DynamicDelist页面)
{
列表标签=新列表();
foreach(页面中的var节点)
{
字符串[]aTags=node.GetPropertyValue(“postTags”).Split(',');
foreach(aTags中的字符串标记)
{
标签。添加(标签);
}
}
string[]orderedList=标记
.GroupBy(i=>i)
.OrderByDescending(g=>g.Count())
.Select(g=>g.Key).Take(10.ToArray();
返回订单列表;
} 
}
有人知道这里有什么问题吗? 错误:加载宏引擎脚本(文件:TagCloud.cshtml)时出错 { 列表标签=新列表(); foreach(页面中的DynamicNode节点) { if(node.GetPropertyValue(“postTags”)!=null) { 字符串[]aTags=node.GetPropertyValue(“postTags”).Split(','); foreach(aTags中的字符串标记) { 标签。添加(标签); } } } string[]orderedList=标记 .GroupBy(i=>i) .OrderByDescending(g=>g.Count()) .Select(g=>g.Key).Take(10.ToArray(); 返回订单列表; } 我通过使用上面的代码实现了这一点,不知道为什么会出现这种情况,但是通过将var切换为DynamicNode help,以及在foreach之后添加验证来检查节点是否在tag属性中包含任何标记…:)

 public string[] GetTop10Tags(DynamicNodeList pages)
    {
        List<string> tags = new List<string>();

        foreach (DynamicNode node in pages)
        {
            if (node.GetPropertyValue("postTags") != null)
            {
                string[] aTags = node.GetPropertyValue("postTags").Split(',');

                foreach (string tag in aTags)
                {
                    tags.Add(tag);
                }
            }
        }

        string[] orderedList = tags
            .GroupBy(i => i)
            .OrderByDescending(g => g.Count())
            .Select(g => g.Key).Take(10).ToArray();

        return orderedList;
    }