我试图找出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")
改编了我的代码,它按预期工作了!
答案 0 :(得分:0)
好的,我在这里找到了答案:Access to session when making ajax call to Asp.net MVC action所以我使用base.HttpRuntime.Cache.Get("key")
改进了我的代码,它按预期工作!