2012-10-04 117 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。我添加了一个替换函数,可以为你逃脱单引号。 –

相关问题