2011-05-04 101 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