从codebehind错误传递javascript参数

从codebehind错误传递javascript参数,javascript,asp.net,Javascript,Asp.net,我使用这个脚本从codebehind调用javascript ClientScript.RegisterStartupScript(this.GetType(), "Exist", "<script language='javascript'>ConfirmRedirect('" + url + "','" + msg + "');</script>", true); 我收到“')预期错误。 我错过了什么?如果我调用的javascript没有参数,那么它就工作了。可能m

我使用这个脚本从codebehind调用javascript

ClientScript.RegisterStartupScript(this.GetType(), "Exist", "<script language='javascript'>ConfirmRedirect('" + url + "','" + msg + "');</script>", true);
我收到“')预期错误。
我错过了什么?如果我调用的javascript没有参数,那么它就工作了。

可能
msg
参数包含类似
'

然后代码将类似于

<script language='javascript'>
    ConfirmRedirect('/myurl/somthing.aspx','Here's my message');
</script>

ConfirmRedirect(“/myurl/somthing.aspx”,“这是我的消息”);

然后等待右括号。

查看HTML源代码并将其包含在问题/帖子中

您可能只是没有逃过足够的
msg
。例如,它可以不包含单引号
或换行符

更新

一个简单的解决方案是使用转义所有单引号

ClientScript.RegisterStartupScript(this.GetType(),“Exist”,“ConfirmRedirect(““+url+”,“+msg.Replace(“”,“\”)+”);”,true);

删除脚本标记,它就会工作,这对我来说很有用:

 ClientScript.RegisterStartupScript(this.GetType(), "Exist", "ConfirmRedirect('" + url + "','" + msg + "');", true);

更换你的味精变量。用这个---


string msg=“您的评论已更新”
这是我为msg声明的内容。@itzArun然后检查url上是否有相同的想法。但我在许多地方调用此脚本。类似于
protectedvoidredirectmessage(stringurl,stringmsg){ClientScript.RegisterStartupScript(this.GetType(),“Exist”,“ConfirmRedirect(“+url+”,“+msg+”);”,true);}
/ConfirmRedirect('selectevaluee.aspx','M.P.Harimurugan']的评估详细信息已升级;//]>这是我得到的HTML源代码。我应该如何传递参数?//]>为什么这些字符来自html源代码?@itzArun这是因为
msg
string变量包含该文本。您可以通过在它们前面添加反斜杠来避开它们,如<代码>\'。
ClientScript.RegisterStartupScript(this.GetType(), "Exist", "<script language='javascript'>ConfirmRedirect('" + url + "','" + msg.Replace("'", "\'") + "');</script>", true);
 ClientScript.RegisterStartupScript(this.GetType(), "Exist", "ConfirmRedirect('" + url + "','" + msg + "');", true);
ClientScript.RegisterStartupScript(this.GetType(), "Exist", "javascript:ConfirmRedirect('" + url + "','" + msg.Replace("'","") + "');", true);