如何在页面输出缓存中保留小部分页面不缓存

时间:2014-11-24 08:04:06

标签: asp.net caching

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ OutputCache Duration="10" Location="Server" VaryByParam="none" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <h2>
        Welcome to ASP.NET!
    </h2>
    <p>
        To learn more about ASP.NET visit <a href="http://www.asp.net" title="ASP.NET Website">
            www.asp.net</a>.
    </p>
    <p>
        This is cached date text
        <asp:Label ID="lblDate" runat="server"></asp:Label>
    </p>
     <p>
        This is uncached date text
        <asp:Label ID="lblDate1" EnableViewState="false" runat="server"></asp:Label>
    </p>
    <p>
        You can also find <a href="http://go.microsoft.com/fwlink/?LinkID=152368&amp;clcid=0x409"
            title="MSDN ASP.NET Docs">documentation on ASP.NET at MSDN</a>.
    </p>
</asp:Content>

在上面的代码中,我希望每当我刷新页面时,只有lblDate1值会发生变化。我怎样才能实现这一点。目前两个控制值都是正确的。

1 个答案:

答案 0 :(得分:0)

由于页面已缓存,因此整个页面都会被缓存,并且在缓存无效之前,将再次从服务器中检索此调用中的任何内容。

您可以通过在文档加载上使用javascript执行ajax调用来解决此问题,该调用从REST服务获取更新的值(或者通过从aspx页面返回json格式化的字符串来模拟服务),然后更新日期值的JavaScript。