asp.net-mvc – 应该在ASP.NET MVC应用程序中缓存发生在哪里?
我需要使用System.Web.Caching.Cache缓存一些数据.不确定是否重要,但数据不是来自数据库,而是数量众多的自定义对象.
ASP.NET MVC对我来说是相当新鲜的,我想知道这个缓存发生在哪里? 型号或控制器? 在某种程度上,在模型级别缓存是有意义的,但我不一定知道这样做的含义(如果有的话).如果缓存要在Controller级别完成,那么会影响所有请求,还是只针对当前的HttpContext? 那么应用程序数据缓存应该在哪里完成,实际做什么是好办法呢? 更新 感谢伟大的答案!我仍然试图收集最适合缓存给定不同场景的地方.如果一个缓存整个页面,那么将它保留在视图中是有意义的,但是当不是整个页面时,绘制线条的位置是什么? 解决方法
我认为这最终取决于你正在缓存什么.如果要缓存渲染页面的结果,这与请求的Http属性紧密耦合,并且会建议一个ActionFilter级缓存机制.
另一方面,如果要缓存驱动页面的数据,那么您应该考虑模型级缓存.在这种情况下,控制器不关心数据生成时,它只对数据执行逻辑运算,并准备进行查看.模型级别缓存的另一个参数是,如果您没有附加到您的Http上下文的模型数据有其他依赖关系. 例如,我有一个网络应用程序,我的大部分模型被抽象成一个完全不同的项目.这是因为将会有一个使用相同后台的第二个网络应用程序,而且我们有可能使用非基于Web的应用程序使用相同的数据.我的大部分数据来自Web服务,这可以是性能杀手,所以我有一个模型级缓存,控制器和视图绝对没有任何关系. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – Cookie不会被删除
- 将ASP.NET MVC 3项目升级到ASP.NET MVC 4
- asp.net-mvc – 将JSON.NET JObject转换为JsonResult的异常
- asp.net – __doPostBack在DotNetNuke网站上未定义为IE 10
- 将Asp.net应用程序移动到负载平衡的环境中
- asp.net – Visual C#中事件的下拉列表在哪里?
- 验证 – ASP.NET MVC 4避免生成datetime的data-val-date
- asp.net – ValidationAttribute类的RequiresValidationCon
- asp.net-mvc-3 – 剃刀索引视图中的条件格式
- asp.net – 随机化实体框架查询结果
- asp.net – 与WebAPI异步时保留HttpContext(中等
- asp.net-mvc – 具有复杂路径的ASP.Net MVC – 如
- ASP.NET OOP-关联操作符重载的操作_RelationalOp
- 什么是ASP.NET应用程序部署的最佳实践
- asp.net-mvc-3 – MVC Razor – 创建/编辑视图最
- asp.net – 使用asp .net TextBox的iPhone电子邮
- asp.net-mvc – 当前建议在Azure网站中为会话变量
- asp.net-mvc – Html Validate和Html ValidateFo
- asp.net-mvc – 我何时以及为什么要考虑asp.net
- 管理页面来管理asp.net会员提供商和角色管理