我有一个页面,根据某些条件,我正在执行 Response.Redirect 或 Server.Transfer。现在我想为这两种情况添加一个标题。所以我正在做以下事情
Response.AddHeader("Vary", "User-Agent");
if (condition)
{
Server.Transfer(redirectUrl);
}
else
{
Response.Redirect(redirectUrl);
}
现在,当代码通过 Server.Transfer 代码路径时,Vary header 设置为 * 而当它通过 Response.Redirect 时, header 正确设置为 User-Agent。
为什么会发生这种情况,如何将这两种情况的响应 header 设置为相同?
最佳答案
当您调用 Server.Transfer
时,当前页面的 Response 对象将被目标页面的 Response 对象替换发送给用户)。
所以,如果你想设置这个特定的 header 属性,你必须在目标页面上进行。
如果它是有条件的,也许您可以使用 HttpContext.Items
属性,该属性在第一页上设置并在第二页上读取。
问候
关于c# - 如何在 Asp.Net 中的 Server.Transfer 之前设置 Response Header?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11417355/