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 に答える