是否可以根据查询值来缓存子操作的输出?
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,这取决于parameter.If,我把OutPutCache放在ActionREsult上,VaryByParam是可以工作的。但是对于子操作(在本例中是PartailViewTestAbout ),它不起作用,我更改查询,但不会等待缓存持续很长时间来刷新页面.
发布于 2013-09-02 11:20:21
答案是,没有传递到PartialViewTestAbout中的缺少的id参数。
[OutputCache(Duration = 20, VaryByParam = "id")]
public ActionResult PartialViewTestAbout(int id)效果很好。
感谢Cem LEGOZ.:)
https://stackoverflow.com/questions/18506189
复制相似问题