2012-10-04 100 views
0

這不是工作:如何在我的ASP .NET頁面上顯示警報消息?

try 
{ 
    EnvironmentVerifier.VerifyAppFoldersAndFiles(); 
} 
catch (Exception ex) 
{ 
    ClientScript.RegisterStartupScript(GetType(), "Error!", "alert('" + ex.Message + "');", true); 
    Logger.LogError(ex.Source, ex.TargetSite.ToString(), ex.Message); 
    return; 
} 

發生錯誤時,它進入catch塊,但警告信息沒有顯示出來。我錯過了什麼?

+1

你怎麼在網頁源看? – SLaks

+0

我不確定你的意思。你能澄清嗎? – Testifier

+0

@Testifier - 當頁面加載時,右鍵單擊它並選擇「查看源代碼」(根據瀏覽器的不同,措辭可能會有所不同)。這應該向您顯示最終的HTML,以便您可以檢查您的注入JavaScript是否存在,以及它是否有效。 –

回答

4

試試這個:

ClientScript.RegisterStartupScript(GetType(), "Error!", "alert('" + ex.Message.Replace("'", @"\'") + "');", true); 

的.Replace( 「 '」,@ 「\'」)逃脫你的警戒( '信息');因爲如果你有這樣的錯誤消息:

alert('My error message's problem is that single quote.'); 

會打破,除非你這樣做:

alert('My error message\'s problem is that single quote.'); 
+0

這工作。你能解釋一下這裏發生了什麼嗎? – Testifier

+1

是的。我總是猜測,這是你的錯誤信息有一個單引號在某處,並打破了JavaScript。我添加了一個替換函數,可以爲你逃脫單引號。 –

相關問題