asp.net 页面加载后添加响应标头

qybjjes1  于 2023-02-01  发布在  .NET
关注(0)|答案(1)|浏览(239)

我正在开发一个遗留服务,它有30个包含多年业务逻辑的aspx页面
有一个父aspx页充当上述aspx页继承的基页。
我需要添加一个响应标头,但我找不到合适的位置将其添加到ParentPage.aspx.cs中,以便将其应用于所有aspx页面。
理想情况下,我希望在**PageLoad()完成后添加,以便将数据添加到头部。
我尝试使用
onPreRender()onLoadComplete()阶段添加标头。但不能保证会调用此阶段,因为aspx页面具有执行Response.Redirect()**的逻辑,因为不会调用重定向onPreRender()和onLoadComplete()。我将无法更改重定向的逻辑
然而,UnLoad()确实一直被调用,但是在UnLoad()阶段不能改变响应
是否有任何建议可以在
ParentPage.aspx.cs
中添加响应的标题?

kupeojn6

kupeojn61#

您有母版页吗?
只需放入代码,在页面加载事件中添加一个标题即可。
我的意思是,代码可以填充文本框,更改内容,然后您可以添加一个新的标题-这些事件的顺序并不重要。
那么,如果您有一个所有页面都使用的母版页呢?
然后在站点主控中执行以下操作:

protected void Page_Load(object sender, EventArgs e)
    {
        Response.AddHeader("Test", "My Test Value");
    }

所以,不清楚你是否有一个主页,但是每次导航到任何页面时,都会在站点主页中触发页面加载。而且每次在任何页面上发生任何回发或按钮单击时,都会运行上述操作。
因此,只需在master中的页面加载中添加标题即可。
因此,上述结果是:

所以,你在代码的开头还是代码的结尾添加头部都没有关系,比如在一个页面中,后面的其他代码可以运行,通过后面的代码对“DOM”进行更改,但是所有的事情都要等待100%,直到后面的所有代码都运行完,然后,只有在那时,整个页面才会回到客户端,客户端重新加载页面,重新启动任何JavaScript代码(并重新设置所有JavaScript值和变量以重新开始),然后页面生命周期完成,准备在单击下一个按钮等时再次开始。在服务器端,页面类被处理,其所有变量等也超出范围(因此术语为无状态)。因此,两端,包括客户端js代码变量在该过程中被重置。
因此,实际上,“顺序”或您用来注入/添加该标头的事件?它何时运行并不重要,只要它在服务器上的整个页面生命周期中的“某个时间点”运行即可。
事实上,我所说的,这是真的很难搞砸了,因为几乎任何事件可以添加标题-但页面负载看起来是一样好的任何事件在这里。

Edit:页面加载事件

因此,您应该可以看到/能够将事件添加到页面母版中,如下所示:

相关问题