首页 新闻 搜索 专区 学院

ASP.NET MVC3模板中循环嵌套

1
悬赏园豆:50 [已关闭问题] 关闭于 2011-11-03 14:13

我的数据结构是:

id    编号

mc  名称

pid 父级编号

怎么在MVC3模板中实现这个功能呢,

问题补充:

后台用递归把递归的html代码生成这个我会,这样做就没有MVC的意义了。主要想界面跟代码分离国开,目前做了在后台用List<Model> 按数据顺序输出,前台就一个安顺序循环,我想这应该还会有更好的解决方法。

糯米小虾的主页 糯米小虾 | 初学一级 | 园豆:97
提问于:2011-11-02 13:57
< >
分享
所有回答(3)
-1

看起来像是你需要一个递归,我曾经碰到类似问题,当时我是在后台用递归把递归的html代码生成好,然后作为model的属性输出到页面里的,这样虽然有背于View的本意,但是有时候不得不做一些事情……希望能有更好的解决方案。

水牛刀刀 | 园豆:6350 (大侠五级) | 2011-11-02 15:20
-1

那么你的Model应该这样的

public class Categroy
{
public int Id {get;set;}
public string mc {get;set;}
public List<Category> SubCategories{get;set}
}

那么你在页面中嵌套循环就可以了

wdwwtzy | 园豆:80 (初学一级) | 2011-11-02 17:07

这样只能做到2层。但是lz好像可能不止2层。

支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2011-11-02 18:26
0

你本身的解决方案就是很好的解决方案了!本身就是树结构数据!必定是前端需要嵌套循环才能生成的!你单独把这个树结构的界面做成一个view去刷新它就可以了!而且你使用MVC一样是模版引擎执行完了后端代码生成html到前端的!和你自己用JS来请求然后获取 html来刷新这个树结构的块(比如这个树结构被div抱住)其实效果是一样的!当然用MVC的那种应该会有部分快捷开发和安全的好处吧!

如果是树的节点过多导致你的界面加载速度慢!你可以考虑开始的时候只加载树的根节点,然后在点击父几点的时候异步刷新请求子节点内容加载过来!

Chobites | 园豆:135 (初学一级) | 2012-07-03 21:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册