2013-11-28 45 views
0

LoadClientScriptMessage功能不起作用,而Response.Redirect("SamePage.aspx");效果不錯!JavaScript與c#無效

if (command2.ExecuteNonQuery() == 0) 
{ 
    LoadClientScriptMessage("Something went wrong!"); 
} 
else 
{ 
    LoadClientScriptMessage("It is OK!"); 
    Response.Redirect("SamePage.aspx"); 
} 

這裏是LoadClientScriptMessage實現:

private void LoadClientScriptMessage(string message) 
{ 
    StringBuilder script = new StringBuilder(); 

    script.Append(@"<script language='javascript'>"); 
    script.Append(@"alert('" + message + "');"); 
    script.Append(@"</script>"); 

    Page.ClientScript.RegisterStartupScript(this.GetType(), "Alert", script.ToString()); 
} 
+1

要顯示警報和重定向用戶,並抱怨說,這是行不通的重定向? –

+0

或者當條件評估爲真時,它是第一次調用嗎? – Abhitalks

回答

3

當你調用Response.Redirect("SamePage.aspx")實際上 重定向當前的請求,你不會看到呈現當前請求的任何響應 。

您在這裏得到的只是一個新的頁面。如果你仍然想看到的警報和重定向然後刪除的Response.Redirect和使用JavaScript window.location.href

LoadClientScriptMessage("It is OK!"); 
//Response.Redirect("SamePage.aspx"); 
    Page.ClientScript.RegisterStartupScript(this.GetType(), "redirct", 
    "window.location.href='somepage'",true); 
0

有你寫Ajax.Utility.RegisterTypeForAjax(typeof(Sample));在頁面加載? 並添加在web.config中

<system.web> 

<httpHandlers> 
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory,Ajax"/> 

</httpHandlers> 
</system.web> 
0
Response.Write("<script>alert('Alert Message')</script>");