asp.net mvc中应用缓存依赖文件(xml)的一个小demo

最近项目中加了一个通用模块,就是根据一些特殊的tag,然后根据处理这些tag在同一个视图中加载不同的model(个人觉得此功能无任何意义,只是把不同的代码放在了同一个View中)。

我的处理思路是这样的,首先将所有的tag放置在xml文件中,然后根据action中传入的tag和xml中的tag对比进而向view中传入不同的数据。为了避免频繁的文件IO,故将遍历xml所有tag之后的结果(集合)进行了缓存,以后的每次请求只通过比对缓存来做处理。不过首次请求是数据并没有缓存,所以要做一下小小的处理。进入简单的代码吧:

 1  public ActionResult ViewMore(string _type)
 2         {
 3             if (!string.IsNullOrEmpty(_type))
 4             {
 5                 ViewMore form = new ViewMore();
 6                 List<string> list = new List<string>();
 7                 var query = HttpRuntime.Cache["Items"] as List<string>;
 8                 if (query == null || query.Count == 0)
 9                 {
10                     XElement xElement = XElement.Load(Server.MapPath("/Content/ViewMore.xml"));
11                     var query_ = from elements in xElement.Elements("child")
12                                  select elements.Value;
13                     if (query_.Count() > 0)
14                     {
15                         foreach (var v in query_)
16                         {
17                             list.Add(v.ToString());
18                         }
19                         HttpRuntime.Cache.Insert("Items", list, new CacheDependency(Server.MapPath("/Content/ViewMore.xml")));
20                     }
21                     else
22                         return View();
23                 }
24                 if ((query != null && query.Contains(_type)) || list.Contains(_type))
25                 {
26                     materialIndex.Institutes = this._instituteService.FindAllInstitutes();
27                     form.MateriaIndex = materialIndex;
28                     form.MateriaIndex.Institutes = materialIndex.Institutes;
29                     return View(form);
30                 }
31                 else
32                     return View();
33             }
34             return View();
35         }
View Code

 

转载于:https://www.cnblogs.com/surfing/p/3482420.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值