public List<Nav> GetNavList()
{
if (HttpRuntime.Cache.Get("NavList") == null)
{
List<Nav> navList = new List<Nav>() { new Nav { ID = 1, ParentID = 0, Title = "首页" }, new Nav { ID = 2, ParentID = 0, Title = "文章" }, new Nav { ID = 3, ParentID = 2, Title = "公司新闻" } };
HttpRuntime.Cache.Insert("NavList", navList);
return navList;
}
else
{
return HttpRuntime.Cache.Get("NavList") as List<Nav>;
}
} public List<Nav> GetNavDropdownList()
{
List<Nav> navList = GetNavList();
List<Nav> navDropdownList = new List<Nav>();
GetNavListByParentID(navDropdownList, navList, 0);
return navDropdownList;
} public void GetNavListByParentID(List<Nav> navDropdownList, List<Nav> navList, int parentID, string indent = "-")
{
var navListByParentID = navList.Where(n => n.ParentID == parentID).ToList();
if (navListByParentID.Count() > 0)
{
foreach (var item in navListByParentID)
{
item.Title = indent + item.Title;
navDropdownList.Add(item);
GetNavListByParentID(navDropdownList, navList, item.ID, indent + "-");
}
}
}
public class CacheController : Controller
{
Function function = new Function();
// GET: Cache
public ActionResult NavList()
{
return View("index", function.GetNavList());
}
public ActionResult DropdownList()
{
return View("index", function.GetNavDropdownList());
}
}为什么刷新DropdownList页面后,缓存的值会改变呢?
首次刷新几次过后?
{
if (HttpRuntime.Cache.Get("NavList") == null)
{
List<Nav> navList = new List<Nav>() { new Nav { ID = 1, ParentID = 0, Title = "首页" }, new Nav { ID = 2, ParentID = 0, Title = "文章" }, new Nav { ID = 3, ParentID = 2, Title = "公司新闻" } };
HttpRuntime.Cache.Insert("NavList", navList);
return navList;
}
else
{
return HttpRuntime.Cache.Get("NavList") as List<Nav>;
}
} public List<Nav> GetNavDropdownList()
{
List<Nav> navList = GetNavList();
List<Nav> navDropdownList = new List<Nav>();
GetNavListByParentID(navDropdownList, navList, 0);
return navDropdownList;
} public void GetNavListByParentID(List<Nav> navDropdownList, List<Nav> navList, int parentID, string indent = "-")
{
var navListByParentID = navList.Where(n => n.ParentID == parentID).ToList();
if (navListByParentID.Count() > 0)
{
foreach (var item in navListByParentID)
{
item.Title = indent + item.Title;
navDropdownList.Add(item);
GetNavListByParentID(navDropdownList, navList, item.ID, indent + "-");
}
}
}
public class CacheController : Controller
{
Function function = new Function();
// GET: Cache
public ActionResult NavList()
{
return View("index", function.GetNavList());
}
public ActionResult DropdownList()
{
return View("index", function.GetNavDropdownList());
}
}为什么刷新DropdownList页面后,缓存的值会改变呢?
首次刷新几次过后?
解决方案 »
- 获取最后阅读时间
- 关于数据导入到GridView的疑问
- c#的序列化
- 一个拥有大约10万个用户的Web系统设计问题
- 发现一个TreeView控件的bug,不知道大家是不是也是这样的。
- 三个文本输入框,当其中某一个为空时,怎么动态产生SQL查询语句??
- [高手入内]自定义component问题
- win 7 vs2013 web 调试 iis Express Worker Process 已停止工作
- web treeview控件的问题
- 为什么我做的apsx的东西都要建虚拟目录才可以用?
- 提示在 ConnectionString 中未指定 OLE DB 提供程序。 改哪里才行
- 我想获取ListView插入后自然增长的主键值如何操作呀,谢了
item.Title = indent + item.Title;
navDropdownList.Add(item);
红色部分使缓存的值发生了变化.
改成下面这种就行了
navDropdownList.Add(new Nav() {ID=item.ID,ParentID=item.ParentID,Title=indent+item.Title });