我的场景是很普通的,就是几个栏目,每个栏目下面都有文章。如何通过foreach嵌套把数据展示出来。示例图借鉴如下(有4个栏目,每个栏目下有各自的文章):
后台有基本的获取栏目列表GetAllCategoryList()、根据栏目id获取文章列表GetArticleListByCategoryId(int categoryid)等方法。
.cs中代码:
//TemplateHelper.RenderHtml是封装的Nvelocity方法
//提供数据
var data = new { CategoryList = GetAllCategoryList()};
Response.Write(TemplateHelper.RenderHtml("index.html", data));
HTML模板中:
<ul>
#foreach($category in $data.CategoryList)
<li><a href="/category/$category.id“>$category.name</a></li>
//这里获取这个栏目的文章列表该怎么写?
//后台的data该怎么提供数据?
//发现用ASPX自带的语法挺好写,用Nvelocity反而难写了
#end
</ul>
求帮忙,急。
你好,在后台写个公共的方法(根据栏目ID获取列表数据),然后加入到输出变量中,这样在前台循环的时候调用方法就好了
可以在后获取栏目,文章的数据,
然后前台可以用循环嵌套,内循环在输出的时候加一个判断过滤,当所属的栏目ID==当前外循环栏目的ID时就输出
给你一个demo
#foreach($newsChannels in $Data.newsChannels)
<div class="collapsed">
<span>$newsChannels.channelName</span>
<ul>
#foreach($newsClass in $Data.newsClass)
#if($newsClass.channelID==$newsChannels.ID)
<li><a href="#">$newsClass.className</a></li>
#end
#end
</ul>
</div>
#end