ASP.net Substitution 页面缓存而部分不缓存的实现方法

  文件1:Deafault.aspx

  

复制代码 代码如下:

  <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

  <%@ outputcache duration="10" varybyparam="none" %>

  <!--设置缓存时间为10秒-->

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <html>

  <head id="Head1" runat="server">

  <title>Substitution控件实例</title>

  </head>

  <body>

  <form id="Form1" runat="server">

  <h1>Substitution控件实例演示</h1>

  您好<b>

  <asp:substitution id="m1" methodname="GetUser" runat="Server">

  </asp:substitution></b><br>

  当前时间[非缓存]:

  <b><asp:Substitution ID="m2" runat="server" MethodName="GetTime" /></b>

  <br />

  缓存: <%=DateTime.Now.ToLongTimeString() %>

  <asp:Button ID="Button1" runat="server" Text="刷新" />

  </form>

  </body>

  </html>

  文件2:Deafault.aspx.cs

  

复制代码 代码如下:

  using System;

  using System.Data;

  using System.Configuration;

  using System.Web;

  using System.Web.Security;

  using System.Web.UI;

  using System.Web.UI.WebControls;

  using System.Web.UI.WebControls.WebParts;

  using System.Web.UI.HtmlControls;

  public partial class _Default : System.Web.UI.Page

  {

  //下面定义了两个表态方法,可以使用Substitution控件调用,以实现这两个方法每次刷新时都要调用

  public static string GetUser(HttpContext context)

  {

  return context.User.Identity.Name;

  }

  public static String GetTime(HttpContext context)

  {

  return DateTime.Now.ToString();

  }

  }