是否可以使用Response.AddHeader特别是我试图使用它的“刷新”。 我需要它在重定向之前暂停,但代码运行的位置在代码隐藏中的ASCX中。当我在Codebehind中有以下内容时,它什么都不做:
HttpContext.Current.Response.AddHeader("Refresh", "6;URL=Default.aspx");
我可以在ascx页面上重定向代码隐藏中的用户吗?
答案 0 :(得分:3)
我不知道为什么这对您不起作用 - 将重定向添加到HTTP标头似乎是正确的语法,它适用于多种浏览器。要对此进行调试,您可以运行Fiddler或类似的工具来查看完整的HTTP响应,并查看它是否没有进入标题。
您可能想尝试稍微重新格式化 - 我看到的示例在分号和url
以及url
关键字之间有小写区域。我怀疑这是问题,但值得一试,如果它在特定浏览器上失败了:
Refresh: 0; url=http://www.example.com/
另一种方法,可能更容易调试,是使用元标记而不是HTTP标头,因此它实际上显示在标记中。类似的东西:
var metaControl = new HtmlMeta
{
Content = "2;url=http://webdesign.about.com/",
HttpEquiv = "refresh"
};
Page.Header.Controls.Add(metaControl);
这会在您的<meta>
部分添加<head>
标记,该标记应具有预期效果。
答案 1 :(得分:2)
你试过吗
if(today == "Friday")
{
Response.Redirect("destination.aspx")
}
如果这不起作用,请更具体地说明您要完成的任务。