Asp.net MVC在视图中使用递归生成树状结构
Asp.net MVC在视图中使用递归生成树状结构
在开发过程中往往会有一个需求,就是将一个树状的数据结构在Asp.net MVC视图中表示出来。例如最传统的多级分类,系统中有一系列根分类,每个分类中又带有一 些子分类,而我们的目标便是在页面上生成一个由ul和li嵌套组成的HTML结构。这个问题看似简单,但是如何让实现变的轻松、易于使用也是一个值得讨论 的问题。这次就来谈谈这部分的情况。
实现目标
首先来明确一下实现目标。例如我们有一个Category对象,表示一个类别:
public class Category
{
public string Name { get; set; }
public List<Category> Children { get; set; }
}
然后我们准备一个嵌套的数据结构:
public ActionResult Categories()
{
var model = new List<Category>
{
new Category
{
Name = "Category 1",
Children = new List<Category>
{
new Category
{
Name = "Category 1 - 1",
Children = new List<Category>()
},
new Category
{
Name = "Category 1 - 2",
Children = new List<Category>()
},
}
},
new Category
{
Name = "Category 2",
Children = new List<Category>
{
new Category
{
Name = "Category 2 - 1",
Children = new List<Category>()
},
new Category
{
Name = "Category 2 - 2",
Children = new List<Category>()
},
}
},
};
return View(model);
}
自然还会有一个Model类型为List<Category>的视图:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<List<Category>>" %>
...
而我们的目标,便是要在视图中显示出这样的HTML:
<ul>
<li>Category 1
<
相关文档:
今天在用DataList的模板列的时候习惯性地像在03中那样去给模板列的绑定字段加个处理函数:
< asp:Label ID = " Label1 " runat = " server " Text = ' <%#ConvertState(Bind("Status"))%> ' ></ asp:Label >
可是竟然出错:当前上下文中不存在名称“Bind” ......
我的机子原本就有Internet信息服务(IIS)的安装选项,下了很多版本的IIS或i386文件可就是缺这缺那的,如:iisapp.vbs
按网上说的修复数据也毫无起色,最后
解决方案:
首先在“开始”菜单的“运行”中输入“c:\Windows\inf\sysoc.inf”,系统会自动使用记事本打开sy ......
为每个用户存储配置信息 以前保存用户配置信息时用到的是session和cookie。 session会话结束,保存的个人信息就会丢失,而cookie在一定程度上存在安全隐患
asp.net 2.0引入的profile技术 可以很好的解决该问题。
强类型 长期保存 支持匿名用户
定义配置(profile)
<?xml version="1.0"?>
<c ......
ASP.NET 数据控件:GridView,DataList,Repeater ,DetailsView,FormView。
ASP.NET 数据控件综述:
1.前3个用于呈现多条记录,后面2个用于呈现单条数据明细,即常用的记录明细。
2.GridView和DetailsView控件的布局固定,自定义数据显示的布局功能有限,一般适合布局简单的数据呈现。
3.DataList,Repeater和FormView数据 ......