当Ajax调用操作时,HttpRuntime.Cache集合为空

时间:2012-12-15 15:00:18

标签: c# asp.net asp.net-mvc

我试图找出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);
        }
    });

有没有办法解决它,例如自定义动作过滤器?

ANSWER

好的,我在这里找到了答案:Access to session when making ajax call to Asp.net MVC action所以我用base.HttpRuntime.Cache.Get("key")改编了我的代码,它按预期工作了!

1 个答案:

答案 0 :(得分:0)

好的,我在这里找到了答案:Access to session when making ajax call to Asp.net MVC action所以我使用base.HttpRuntime.Cache.Get("key")改进了我的代码,它按预期工作!