ASP.NET OutputCache和回发

lne*_*nel 5 asp.net outputcache

我正在尝试理解ASP.NET OutputCache机制.
我用Label和LinkBut​​ton构建了一个测试页面.
标签文本正在服务器上初始化,每个PageLoad上都有当前服务器日期:

protected void Page_Load(object sender, EventArgs e)  
{  
    lblDate.Text = DateTime.Now.ToString();  
}
Run Code Online (Sandbox Code Playgroud)

我使用了这个指令: <%@ OutputCache Duration="600" VaryByParam="none"%>

当我第一次在Label中获得一个新文本时按下LinkBut​​ton但是如果我再次按下linkbutton,我就不会得到一个新文本.

我假设这是因为传输到服务器的参数对于每个回发都是相同的.

有没有办法使用OutputCach和回发控件?

use*_*706 6

是的,你可以通过NO参数改变,所以第一个请求的响应html被缓存并在接下来的10分钟内服务(理论上).如果要缓存GET但处理不同的POST,则应根据POST参数进行更改.

让我给你举个例子.您有一个文本输入用于在POST时发送包含其内容的电子邮件.如果您根据该输入名称进行了更改,则缓存时间范围内的每个请求与该文本输入的不同值将会触及您的处理程序并处理发送电子邮件.

另一方面,你可以改变*但是你会失去内核模式缓存.