0

我正在使用 MCV3 OutputCache 来减少包含数据表的页面的加载时间。我使用 ajax 方法来更新信息并操作 DOM 以向用户显示他们的更改已经成功。这很好,直到他们加载页面并且加载缓存的数据集而不是更新的数据集。

当调用 Update 方法时,我想清除缓存或删除它,以便在重新加载页面时使用新的更新数据重新创建它。

我的代码如下:

[OutputCache(CacheProfile = "VideoIndexView")]
public ActionResult Index()
{
    ...
    return View(model);
}
4

2 回答 2

1

当你想从缓存中清除一些 url 时,你可以调用RemoveOutputCacheItem静态方法。

于 2011-12-15T07:03:56.593 回答
0

您可以使用您的Index操作结果来加载屏幕模板并使用 AJAX 来获取和加载实际数据。

[OutputCache(CacheProfile = "VideoIndexView")]
public ActionResult Index()
{
    ...
    return View(model);  // Really only return a model that is okay to be cached
}

public ActionResult LoadData ()
{
    var Result = // Load the data
    ...
    return Json(Result);  // Don't forget to allow GET here if you're using HTTPGET
}

// Or...

public ActionResult LoadData ()
{
    var Result = // Load the data
    ...
    return PartialView (Result);
}

这样,Index可以很好地缓存数据,并且在将页面提供给用户后将数据加载并注入页面。如果你打算使用 jQuery 之类的东西,如果你使用 GET,一定要告诉它不要使用缓存的结果。

于 2011-12-15T03:04:25.383 回答