asp.net - 如何在 MVC4 中将对象添加到缓存并从缓存中访问数据?

标签 asp.net asp.net-mvc asp.net-mvc-3 caching asp.net-mvc-4

大家好,我有一个返回这样数据的对象

         var productdetial=  {
                               "productId": "1",
                               "productname": "Casualshirts",
                               "productSkus": [
                                                   {
                                                     "Skuimage": "URL",
                                                     "SKU": [
                                                               {
                                                                  "ProducSKU": "Shoe1001",
                                                                  "Options": [
                                                                                {
                                                                                  "productOptions": [
                            {
                                "OptionID": "1",
                                "optionname": "Color",
                                "value": "Black"
                            },
                            {
                                "OptionID": "2",
                                "optionname": "Size",
                                "value": "S"
                            },
                            {
                                "OptionID": "3",
                                "optionname": "Fit",
                                "value": "Regular"
                            }
                        ]
                    }
                ]
            },
            {
                "ProducSKU": "Shoe1002",
                "Options": [
                    {
                        "productOptions": [
                            {
                                "OptionID": "1",
                                "optionname": "Color",
                                "value": "Red"
                            },
                            {
                                "OptionID": "2",
                                "optionname": "Size",
                                "value": "S"
                            },
                            {
                                "OptionID": "3",
                                "optionname": "Fit",
                                "value": "Regular"
                            }
                        ]
                    }
                ]
            },
            {
                "ProducSKU": "Shoe1003",
                "Options": [
                    {
                        "productOptions": [
                            {
                                "OptionID": "1",
                                "optionname": "Color",
                                "value": "Orange"
                            },
                            {
                                "OptionID": "2",
                                "optionname": "Size",
                                "value": "S"
                            },
                            {
                                "OptionID": "3",
                                "optionname": "Fit",
                                "value": "Regular"
                            }
                        ]
                    }
                ]
            }
        ]

现在我想要的是我想将这些数据保留在缓存中,并且我将此数据绑定(bind)到我的 View ,现在我想要的是每当我从现在发出请求时我应该能够访问来自上面的对象位于缓存中...任何人都可以帮助我如何执行此操作如何将此对象添加到缓存并从那里访问数据

最佳答案

您可以将其放入应用程序缓存中,以便可以从任何地方访问它。

HttpContext.Current.Application["productdetial"] = productdetial;

然后你就可以像这样从任何地方访问它

ProductDetails object = (ProductDetails) HttpContext.Current.Application["productdetial"]

如果你想存储和检索这个字符串,那么这也是可能的。请注意,如果您需要特定于用户 session 的缓存,请使用“ session ”表而不是“应用程序”

还有另一种类型的缓存 OutputCache 可以应用于 Controller 操作,如下所示。在 300 秒的持续时间内,这将向客户端提供缓存的输出。

[OutputCache(Duration=300, VaryByParam="none")]
 public ActionResult GetProductDetails()
 {
      //Fetch the data once and it will be cached for 300 seconds       
            return View(data);
 }

看起来您需要上述 2 种之一。还有其他类型的缓存,例如 donut 缓存和 donut 孔缓存,如果您只想缓存 View 的某些部分,则可以使用它们。在 donut 洞缓存中,您可以将上述缓存的操作作为操作包含到另一个 View 中。

关于asp.net - 如何在 MVC4 中将对象添加到缓存并从缓存中访问数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12908382/

相关文章:

asp.net-mvc - 使用单个 ASP .NET MVC 下拉列表编辑两个值的好方法是什么?

c# - 自定义类 ASP.Net 5 MVC 6 中的应用程序设置

c# - 通过代码填充 ITemplate

c# - .Net 谷歌分析 API v3 : User does not have sufficient permissions for this profile. [403]

jquery - 将 jTemplate 与 ASP.NET MVC 结合使用

asp.net-mvc-3 - Orchard 如何在不调用 RenderBody 的情况下逃脱?

php - 有经验的 Asp.net 程序员在开始使用 PHP 时应该了解什么?

asp.net - 为 ASP.NET MVC 应用程序实现全文搜索的最佳方法是什么?

asp.net-mvc - Razor不会在HiddenFor中渲染隐藏的精确PK

asp.net-mvc - ASP.NET MVC3 远程验证不输出错误消息