栏目树html脚本调用语法

1、获取当前站点所有栏目树的html脚本

Html.SiteColumnsHtml(int? siteId)

siteId参数可以不设置,不设置则默认当前站点id,下面的方法也类似,不再一一说明

2、获取当前站点一级栏目的html脚本

Html.SiteColumnHtml(int? siteId)

3、获取当前栏目的所有子栏目html脚本

Html.ColumnChildrensHtml(int? columnId)

columnId参数不设置则默认当前栏目id,下面方法参数也类似

4、获取当前栏目的相邻栏目html脚本

Html.ColumnChildrenHtml(int? columnId)

5、获取当前栏目的顶级栏目下的所有子栏目html脚本

Html.TopColumnChildrensHtml(int? columnId)

6、获取当前栏目的顶级栏目的第一个子级栏目的html脚本

Html.TopColumnChildrenHtml(int? columnId)

7、获取当前栏目相邻的父级栏目的所有子栏目树的html脚本

Html.ParentColumnChildrensHtml(int? columnId)

8、获取当前栏目相邻的父级栏目的相邻子级栏目树html脚本

Html.ParentColumnChildrenHtml(int? columnId)


实例1:获取站点的栏目树结构,模板中写法如下

<div class="nav" id="nav">
@Html.SiteColumnsHtml()
</div>

栏目树默认结构为标准的ul,li的嵌套结构。


实例2:通过定义函数自定义栏目Html结构,代码如下。

2.1:首先模板中申明一个函数,建议放在模板第一行,代码如下:

@functions{
    private string ColumnTree(int parentId=0)
    {
        string html = "<ul>";
        int siteId = Html.CurrentSiteId();//获取当前站点Id
        IEnumerable<dynamic> columnList=Html.GetColumnList(c => c.SiteId == siteId);//获取当前站点的所有栏目数据集
        columnList = columnList.Where(c => c.ParentId == parentId);//筛选当前级别的数据
        columnList = columnList.OrderBy(c => c.Xuhao);//按序号排序
        if (columnList.Count()==0)
        {
            return ""; //没有子集则返回空字符串
        }
        foreach (dynamic item in columnList)
        {
            int columnId = item.Id;//调用栏目id字段
            string name = item.Name; //调用栏目Name字段
            string url = Html.ColumnUrl();//获取栏目url地址
            int level = item.Level;//调用栏目level字段
            //自定义拼接开始
            html += "<li>";
            html += "<a href=\"" + url + "\">" + name + "</a>";
            html += ColumnTree(columnId);  //递归获取
            html += "</li>";
        }
        html += "</ul>";
        return html;
    }
}

2.2:调用方法如下:

<div class="nav">
      @Html.Raw(ColumnTree())
</div>

注意:这里需要通过Html.Raw方法进行转义,否则html代码会被转义。

中文无码有码亚洲 欧美_无码不卡中文字幕在线视频_无码国模国产在线观看