我的数据结构是:
id 编号
mc 名称
pid 父级编号
怎么在MVC3模板中实现这个功能呢,
后台用递归把递归的html代码生成这个我会,这样做就没有MVC的意义了。主要想界面跟代码分离国开,目前做了在后台用List<Model> 按数据顺序输出,前台就一个安顺序循环,我想这应该还会有更好的解决方法。
看起来像是你需要一个递归,我曾经碰到类似问题,当时我是在后台用递归把递归的html代码生成好,然后作为model的属性输出到页面里的,这样虽然有背于View的本意,但是有时候不得不做一些事情……希望能有更好的解决方案。
那么你的Model应该这样的
public class Categroy
{
public int Id {get;set;}
public string mc {get;set;}
public List<Category> SubCategories{get;set}
}
那么你在页面中嵌套循环就可以了
这样只能做到2层。但是lz好像可能不止2层。
你本身的解决方案就是很好的解决方案了!本身就是树结构数据!必定是前端需要嵌套循环才能生成的!你单独把这个树结构的界面做成一个view去刷新它就可以了!而且你使用MVC一样是模版引擎执行完了后端代码生成html到前端的!和你自己用JS来请求然后获取 html来刷新这个树结构的块(比如这个树结构被div抱住)其实效果是一样的!当然用MVC的那种应该会有部分快捷开发和安全的好处吧!
如果是树的节点过多导致你的界面加载速度慢!你可以考虑开始的时候只加载树的根节点,然后在点击父几点的时候异步刷新请求子节点内容加载过来!