我有一个 ASP.NET 页面,我试图在其中进行一些输出缓存,但遇到了问题。我的 ASPX 页面有
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="MYProject._Default" %>
<%@ OutputCache Duration="600" VaryByParam="None" %>
<%@ Register TagPrefix="MYProjectUC" TagName="PageHeader" Src="~/Lib/UserControls/PageHeader.ascx" %>
<%@ Register TagPrefix="MYProjectUC" TagName="PageFooter" Src="~/Lib/UserControls/PageFooter.ascx" %>
我在 ASPX 页面中有一个名为“PageHeader”的用户控件。在PageHeader.ascx
中,我有一个 ASP.NETSubstitution
控件,我想在其中显示一些基于登录用户的链接。
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PageHeader.ascx.cs" Inherits="MyProject.Lib.UserControls.PageHeader1" %>
<div class="headerRow">
<div class="headerLogo">
<a href="Default.aspx"><img src="Lib/Images/header.gif" alt=""></a>
</div>
<div id="divHeaderMenu" runat="server">
<asp:Substitution ID="subLinks" runat="server" MethodName="GetUserProfileHeaderLinks" />
</div>
</div><!--headerRow-->
在我的用户控件代码隐藏中,我有一个静态方法,它将根据使用的是否登录或不使用会话返回一个字符串:
public static string GetUserProfileHeaderLinks(HttpContext context)
{
string strHeaderLinks = string.Empty;
// check session and return string
return strHeaderLinks;
}
但是该页面仍然为登录用户和访客用户显示相同的内容。
我的目标是让页面被缓存,除了替换控件中的内容。我该怎么做呢?