这会显示预期的javascript警告消息框:
RadAjaxManager1.ResponseScripts.Add("alert('blahblahblah');");
虽然这些不是:
RadAjaxManager1.ResponseScripts.Add("alert('blahblah \n blahblahblah');");
RadAjaxManager1.ResponseScripts.Add("alert('blahblah \r blahblahblah');");
RadAjaxManager1.ResponseScripts.Add("alert('blahblah \r\n blahblahblah');");
RadAjaxManager1.ResponseScripts.Add("alert('blahblah \n\t blahblahblah');");
RadAjaxManager1.ResponseScripts.Add(@"alert('blahblah \n blahblahblah');");
string message = "blahblahblah \n blahblahblah";
RadAjaxManager1.ResponseScripts.Add(message);
我找不到任何关于转义字符的文档。我理解Add方法的单个字符串参数可以是任何脚本。没有错误,所以我最好的猜测是格式错误的javascript。
答案 0 :(得分:2)
你在字符串中添加的\ n实际上是在.NET中作为新行解析的,所以它就这样到达了客户端。例如:
setTimeout(function(){alert('blahblah
blahblahblah');}, 0);
上述内容不是有效的JavaScript代码,不会执行。为了在客户端脚本中具有实际的\ n,您必须在服务器代码中将其转义为\ n。例如:
RadAjaxManager1.ResponseScripts.Add("alert('blahblah \\n blahblahblah');");
将输出:
setTimeout(function(){alert('blahblah \n blahblahblah');}, 0);