2011-05-04 100 views
0

我看遍了整個地方,並有很少的運氣。ASP.Net C#JavaScript彈出窗口幫助

try{ 
FooError(); 
} 
catch (Exception Exc){    
ClientScript.RegisterClientScriptBlock(this.GetType(), "errorPop", 
@"<script language='javascript'> alert(" + Exc.Message + "); </script>"); 
return; 
} 

我不斷收到一個JavaScript錯誤,說'預期')'「。我在開始時嘗試了@的腳本(就像這樣),一開始沒有@,最後沒有分號。我試過

ClientScript.RegisterClientScriptBlock(this.GetType(), "errorPop", 
@"<script type=\"text/javascript\"> alert(" + Exc.Message + "); </script>"); 

我已經能夠得到這個帶有靜態值報警功能

ClientScript.RegisterClientScriptBlock(this.GetType(), "errorPop", 
@"<script language='javascript'> alert('Foo'); </script>"); 

工作,但是,這不是我所需要的。 我在這裏做錯了什麼?有沒有更好的辦法? 我想我的意思是要問如何在JavaScript警告框中使用C#字符串變量,如果甚至可能的話。

謝謝。

這是我的第一個問題,我希望我做對了--.-;

+0

問題。這是與變量。對於處理警報(字符串),必須採用「'Stuff」「的形式。 – Will 2011-05-05 13:34:26

回答

0

聽起來像在您的Exc.Message中可能會有一些字符會破壞JavaScript字符串。看看你的來源,看看產生了什麼,但我期望找到像這樣的東西:

<script language='javascript'> alert("Error "this" happened"); </script> 

請注意「this」會如何打破這一點。所以你需要做類似

Exc.Message.Replace("\"", "'"); 
+0

沒有想到這一點。當前正在傳遞的錯誤消息是:「票號字段爲空或具有無效條目,字段必須具有整數值」。這是一個字符串文字,所以...它不應該包括「」當它被評估?不知道... – Will 2011-05-04 21:40:49

+0

那麼,唯一確定的方法就是查看源文件並查看生成的內容。它可能不是「字符,這只是一個例子,一旦你找到它,你可以逃脫它。 – Milimetric 2011-05-04 23:14:48

0

在Exc.Message的周圍加上引號 - 就像你用Foo做的那樣。

ClientScript.RegisterClientScriptBlock(this.GetType(), "errorPop", 
@"<script type=\"text/javascript\"> alert('" + Exc.Message + "'); </script>"); 

ClientScript.RegisterClientScriptBlock(this.GetType(), "errorPop", 
    @"<script type=\"text/javascript\"> alert(\"" + Exc.Message + "\"); </script>"); 

因爲你的輸出看起來就像解決了這個

alert(whatever the message is); 
+0

試過這個,但現在它是...怪異的ClientScript.RegisterClientScriptBlock(this.GetType(),」errorPop「, \t \t \t \t \t @ 「」);在紅色波浪 「你這樣做是錯誤的」 指示器的說法,它的期待這些東西在那裏,一個分號,一個關閉),只是表現得很奇怪。 – Will 2011-05-04 21:46:45

+0

你的IDE可能會看到JavaScript並且感到困惑。 – 2011-05-04 21:49:06

+0

對不起,我用來輸入= newline not enter = submit -.-; – Will 2011-05-04 21:49:59