动态更新MVC中的部分缓存页面

时间:2017-08-08 11:44:31

标签: c# asp.net-mvc asp.net-mvc-4 razor

在我的MVC项目中,有一个页面有静态内容,除了它显示当前时间(动态)。我想缓存这个页面,但由于时间我不能。

我尝试过使用DonutCatching,但它不起作用。 以下是我尝试使用DonutCatching的代码。

主控制器:-Search.cs

[OutputCache(Duration=3600)]
public ActionResult Index()
{
     return View("Main.cshtml");
}
public ActionResult Part()
{
     return View("Date.cshtml",DateTime.Now);
}

Main.cshtml

@using DevTrends.MvcDonutCaching;
<div></div>
<div></div>
@Html.Action("Part","Search",true)
<div></div>
<div></div>

Date.cshtml

@model DateTime
<h2>@Model</h2>

我想缓存Main.cshtml,但每次请求Main.cshtml时都会更新部分日期。任何解决方案或我在上面做错了什么?

1 个答案:

答案 0 :(得分:1)

我认为这是不可能的,因为整个页面都是缓存服务器端。您可以尝试基于计时器(类型为setTimeout js)的Ajax加载或者放置$ .ready()处理程序而不是部分视图。然后在缓存的主页完成加载后加载该部分。 在jQuery中检查此函数: http://api.jquery.com/load/

<div id="dynamicsection">
<script>
$( "#dynamicsection" ).load( "@Url.Action("Part", "Search")");
</script>

如果有帮助,请告诉我