我到处都看了,运气很少。
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 :(得分:0)
听起来你的Exc.Message中可能有一些字符破坏了javascript字符串。查看您的来源以查看生成的内容,但我希望找到类似的内容:
<script language='javascript'> alert("Error "this" happened"); </script>
注意“这个”会如何破坏它。所以你需要做一些像
这样的事情Exc.Message.Replace("\"", "'");
答案 1 :(得分: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);