sha*_*shi 4 c# asp.net response.redirect server.transfer http-headers
我有一个页面,根据某些条件我要么做Response.Redirect或Server.Transfer.现在我想为两个案例添加一个标题.所以我正在做以下事情
Response.AddHeader("Vary", "User-Agent");
if (condition)
{
Server.Transfer(redirectUrl);
}
else
{
Response.Redirect(redirectUrl);
}
Run Code Online (Sandbox Code Playgroud)
现在,当代码通过Server.Transfer代码路径时,Vary标头设置为*,而当它通过Response.Redirect时,标头正确设置为User-Agent.
为什么会发生这种情况?如何为两种情况设置响应标头相同?
当您调用时Server.Transfer,当前页面的Response对象将被目标页面的Response对象(实际发送给用户的Response)替换.因此,如果要设置此特定标头属性,则必须在目标页面上执行此操作.
如果它是有条件的,也许您可以使用HttpContext.Items在第一页上设置的属性,在第二页上读取.
问候
| 归档时间: |
|
| 查看次数: |
5830 次 |
| 最近记录: |