ASP.Net C#JavaScript弹出窗口帮助

时间:2011-05-04 21:31:53

标签: c# javascript asp.net

我到处都看了,运气很少。

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#字符串变量,如果它甚至可能的话。

感谢。

这是我的第一个问题,我希望我做对了 - .-;

2 个答案:

答案 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);