PageAdmin网站内容管理系统(CMS)交流论坛

首页 » PageAdmin使用区 » 安装及使用交流 » 如何自定义当前栏目的子栏目html结构
hcjs - 2019/3/6 17:13:59
@foreach (var item in Html.TopColumnChildrensHtml())
        {

        <LI><A href="@item.Url">@item.Name</A> </LI>
        }
上面的代码提示错误:
编译器错误消息: CS1579: “System.Web.IHtmlString”不包含“GetEnumerator”的公共定义,因此 foreach 语句不能作用于“System.Web.IHtmlString”类型的变量

下面的代码显示了所有的二级子栏目,暂时  不知道 如何判断  子栏目id  是否属于当前顶级栏目  ,
@foreach (var item in Html.GetColumnList(c=>c.SiteId==1 && c.Level==2))
        {
        var lanmuid=Html.TopColumnId();
        var url=Html.ColumnUrl((int)item.Id);
        
        <LI><A href="@url">@item.Name</A> </LI>
        }
xiyou - 2019/3/6 17:41:05
Html.TopColumnChildrensHtml()直接输出html代码,不能这样用的。
foreach循环只支持集合。
http://www.pageadmin.net/help/54.cshtml 看最后一个方法
hcjs - 2019/3/6 18:01:20
@{
        var lanmuid=Html.TopColumnId();
        }
        @foreach (var item in Html.GetColumnList(c=>c.SiteId==1 && c.parenId==@lanmuid && c.Level==2))   [color=Red]//想获取当前顶级栏目id的二级栏目,但是提示错误[/color]
        {

        var url=Html.ColumnUrl((int)item.Id);
         var name=Html.ColumnName((int)lanmuid);
        <LI><A href="@url">@item.Name</A> </LI>
        }

上面的代码提示:异常详细信息: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: “System.Dynamic.ExpandoObject”未包含“parenId”的定义。[b]麻烦指点一下[/b]
xiyou - 2019/3/6 18:23:45
改成这样
c.parenId==@lanmuid
改为
c.ParenId==lanmuid
你这个获取二级栏目的效果和直接用用Html.TopColumnChildrenHtml(int columnId)方法效果一样,
http://www.pageadmin.net/help/55.cshtml 这里很多方法基本够用了。
hcjs - 2019/3/7 11:45:01
1、  c.ParenId==lanmuid  这样写会提示异常详细信息: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: “System.Dynamic.ExpandoObject”未包含“ParenId”的定义

2、直接用用Html.TopColumnChildrenHtml(int columnId)方法,如何自定义html
xiyou - 2019/3/7 11:51:37
c.ParentId==lanmuid
少了一个t
你为啥要自定义html,我看你写的也是简单的<LI><A href="@url">@item.Name</A> </LI>这种结构,Html.TopColumnChildrenHtm生成的也是ul li结构。
1
查看完整版本: 如何自定义当前栏目的子栏目html结构