首页 新闻 会员 周边 捐助

在视图中使用递归生成树状结构,如何在asp.net mvc razor中实现?

0
悬赏园豆:10 [待解决问题]

我想在视图中递成生成树状结构,看了老赵的文章:http://blog.zhaojie.me/2009/09/rendering-tree-like-structure-recursively.html

想使用他的最后一个实现,但在asp.net mvc razor语法中,不知道如何输出html.

扩展HtmlHelper方法:

public delegate void SelfApplicable<T>(SelfApplicable<T> self, T arg);

public static class HtmlExtensions
{
    public static void Render<T>(this HtmlHelper helper, T model, SelfApplicable<T> f)
    {
        f(f, model);
    }
}

 

然后他在视图中的代码是:

<% Html.Render(Model, (render, categories) => { %>

    <% if (categories.Count > 0) { %>
        <ul>
            <% foreach (var cat in categories) { %>
        
                <li>
                    <%= Html.Encode(cat.Name) %>
                    <% render(render, cat.Children); %>
                </li>
        
            <% } %>
        </ul>
    <% } %>

<% }); %> 

我想问,如果在razor语法中,如何实现?

Jeffrey Chan的主页 Jeffrey Chan | 初学一级 | 园豆:192
提问于:2014-07-13 17:42
< >
分享
所有回答(2)
0

把 <% %>  换成 @ 就可以了。

@{

foreach (var cat in categories)

{

  <li>
  @Html.Encode(cat.Name)
  @render(render, cat.Children); 
  </li>

}

}

晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-07-14 11:34
0

请问你的razor 的如何实现的

码仔 | 园豆:105 (初学一级) | 2015-05-13 16:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册