1

我试图弄清楚为什么HttpRuntime.Cache当控制器操作被调用时我的集合总是空的$.ajax?在正常调用的操作中,一切正常,我可以从Cache. 也许由 AJAX 调用的动作有一些不同的生命周期并且Cache集合还没有准备好?这是我的示例代码:

行动:

[HttpPost]
public PartialViewResult SomeAjaxAction()
{
   // when receive ajax request HttpRuntime.Cache is always empty, but it shouldn't be
   SomeType item = HttpRuntime.Cache.Get("cache_key") as SomeType;

   return PartialView("SomeAjaxActionView", item); 
}

调用:

$.ajax({
        type: 'POST',
        url: '/controller/SomeAjaxAction/',
        success: function (response) {
            alert(response);
        }
    });

有什么方法可以修复它,例如通过自定义操作过滤器?

回答

好的,我在这里找到了答案:在对 Asp.net MVC 操作进行 ajax 调用时访问会话所以我改进了我的代码,base.HttpRuntime.Cache.Get("key")它按预期工作!

4

1 回答 1

0

好的,我在这里找到了答案:在对 Asp.net MVC 操作进行 ajax 调用时访问会话所以我改进了我的代码,base.HttpRuntime.Cache.Get("key")它按预期工作!

于 2012-12-15T16:17:59.790 回答