1

因此,在准备对控制器进行单元测试时,我正在查看我的标准缓存实用程序,并想,嘿,访问 HttpRuntime.Cache 在 MVC 中直接被认为是有害的吗?

我将缓存包装在一个代理类中,该类实现了一个类似缓存的接口(虽然简单得多),这样我就可以在测试期间模拟它。但我想知道这是否已经在新框架中为我完成了。但是,我什么也找不到。

这是我如何做的一个想法:

public ActionResult DoStuffLol(guid id)
{
  var model = CacheUtil.GetOrCreateAndStore(
                  "DoStuffLolModel",
                  () =>
                  {
                    /* construct model here; time consuming stuff */
                    return model;
                  });
  return View("DoStuffLol", model);
}

那么,访问缓存的旧模式是否发生了变化?在 MVC 中缓存操作结果是否有更好的模式?

4

2 回答 2

1

将 OutputCache 属性添加到您的控制器操作中,以便告诉框架为您缓存输出。您可以在ScottGu 关于 ASP.NET Preview 4 的博客文章中阅读有关此属性的更多信息。

但是,不要将其与 Authorize 属性结合使用

于 2008-10-07T17:01:02.337 回答
0

不,但是缓存在 3.5 中发生了变化。3.5 包括包装类,这些类使得对 asp.net 中使用的许多静态类的存根/模拟变得容易。

http://www.codethinked.com/post/2008/12/04/Using-SystemWebAbstractions-in-Your-WebForms-Apps.aspx

于 2008-12-04T18:18:27.557 回答