public class CacheMaster : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
int userId = 0;
if (filterContext.Controller.ViewData["currentuser"] != null)
{
UserManager.User user = (UserManager.User)filterContext.Controller.ViewData["currentuser"];
if (user.ID != 0)
userId = user.ID;
}
base.OnActionExecuting(filterContext);
}
}
このコードを使用してアクションをキャッシュしたいのですが、ユーザーごとに動作が異なります。どのように私はそれを得ることができます。うまくいきません。
実際、ゲストユーザーの表示とユーザーの表示は異なるため、どうすればより適切にキャッシュできますか。outputcache を試してみると、すべての人が同じように表示されます。
httpcontext を使用する場合。キャッシュすると、機能しなくなります。ビューデータを現在のコンテキストのキャッシュに入れ、次回はキャッシュから取得したことを意味します。
誰かがそれを機能させるのを手伝ってください。