2010-11-29 56 views
0

注意:我有一个从SiteMap呈现的aspx ASPX页面。第一次发生POSTBACK,但随后在同一会话中,POSTBACK不会被触发。ASP.NET-第二回复没有通过SiteMap链接发生?

HACK(没有工作) - 我有这样的HTML标签

<html> 
<head id="Head1" runat="server"> 
    <META HTTP-EQUIV="Refresh" CONTENT="2"> 
    <link rel="Stylesheet" type="text/css" href="~/Main.css" id="style"/> 
</head> 
</html> 

当我访问这个ASPX页面,我想这个META标签只调用一次内部刷新meta标签。所以,我在OnLoadComplete事件中尝试以下代码? -

 HtmlMeta meta = new HtmlMeta(); 
     HtmlHead head = (HtmlHead)Page.Header; 
     head.Controls.RemoveAt(0); 

但是,这不起作用。任何想法为什么回发没有发生? d

回答

0

< META HTTP-EQUIV =“刷新” CONTENT =“2”>

是适合那些网站,我们不断需要一个特定的时间间隔后刷新页面,在这里你的情况下,如果你只想刷新整个页面一次然后你可以 做两件事 *)。 call Response的方法是这样的

Response.Redirect("currentPage.aspx") 

*)。在Page_Load方法

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Session["refresh"] != null) 
    { 
     HtmlMeta meta = new HtmlMeta(); 
     HtmlHead head = (HtmlHead)Page.Header; 
     head.Controls.RemoveAt(0); 
    } 
    else 
     Session["refresh"] = "not null"; 
} 
+0

Jeevan,问题是当我登陆这个aspx页面时,我没有收到回复。所以,我将META REFRESH标签用于POSTBACK,然后我不想再有任何POSTBACKS。 – Jimmy 2010-11-29 06:07:23

+0

@ Angshuman-你可以发布你的完整代码,因为我不明白为什么你不是在回发PostBack,因为在正常情况下它会回发,你的问题还不清楚。 – 2010-11-29 06:11:20

0

相信<META HTTP-EQUIV="Refresh" CONTENT="2">也应该有一个runat="server"属性,以便ASP.NET与它进行交互。

UPDATE
第二次它不是一个ASP.NET回发,页面没有使用POST,但使用GET被检索。也许使用<meta http-equiv="refresh" content="2;url=http://example.com/myurl?myvariable=XYZ"/>,所以当它刷新时,它会附加一些变量。在你的“回传”中,你检查该变量是否存在。