ascx文件中的Response.AddHeader

时间:2011-04-01 13:25:41

标签: c# asp.net response ascx

是否可以使用Response.AddHeader特别是我试图使用它的“刷新”。 我需要它在重定向之前暂停,但代码运行的位置在代码隐藏中的ASCX中。当我在Codebehind中有以下内容时,它什么都不做:

HttpContext.Current.Response.AddHeader("Refresh", "6;URL=Default.aspx");

我可以在ascx页面上重定向代码隐藏中的用户吗?

2 个答案:

答案 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")
}

如果这不起作用,请更具体地说明您要完成的任务。