【问题标题】:MVC 4 child action's outputcache attribute not working with VaryByParam valueMVC 4 子操作的 outputcache 属性不适用于 VaryByParam 值
【发布时间】:2013-09-01 14:32:52
【问题描述】:

是否不能根据查询值缓存子操作的输出?

public class HomeController : Controller
{
    public ActionResult About()
    {
        ViewBag.Message = DateTime.Now.ToLongTimeString();

        return View();
    }

    [OutputCache(Duration = 20, VaryByParam = "id")]
    public ActionResult PartialViewTestAbout()
    {
        ViewBag.Second = DateTime.Now.Second;
        return View();
    }
}


About.cshtml

<hgroup class="title">
    <h1>@ViewBag.Title.</h1>
    <h2>@ViewBag.Message</h2>
</hgroup>


@Html.Action("PartialViewTestAbout")
.
.
.

PartialViewTestAbout.cshtml:
----------
<p>
    This is a partial view About.
    <h1 style="color:red;">@ViewBag.Message</h1>
    @ViewBag.Second
</p>

在没有可变参数的情况下运行良好。但是我需要根据参数刷新 PartialViewAboutTest。如果我将 OutPutCache 放在 About ActionREsult 上,并且 VaryByParam 正在工作。但是在本例中使用 ParttailViewTestAbout 的子操作不起作用,我更改了查询但没有等待缓存持续时间很长来刷新页面...

【问题讨论】:

    标签: asp.net-mvc-4 outputcache child-actions varybyparam


    【解决方案1】:

    答案是,缺少的 id 参数没有传入 PartialViewTestAbout..

    [OutputCache(Duration = 20, VaryByParam = "id")]
    
    public ActionResult PartialViewTestAbout(int id)
    

    这很好用。

    感谢 Cem LEGOZ..:)

    【讨论】:

      猜你喜欢
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      • 2014-12-30
      • 2012-06-22
      • 1970-01-01
      相关资源
      最近更新 更多