C# 如何清理异常字符串,以便通过Javascript警报显示它?
我试图以一种由来已久的方式显示异常字符串:-C# 如何清理异常字符串,以便通过Javascript警报显示它?,c#,javascript,asp.net,C#,Javascript,Asp.net,我试图以一种由来已久的方式显示异常字符串:- Page page = HttpContext.Current.CurrentHandler as Page; if (page != null && !page.ClientScript.IsClientScriptBlockRegistered("alert")) { page.ClientScript.RegisterClientScriptBlock( typeof(Alert),
Page page = HttpContext.Current.CurrentHandler as Page;
if (page != null && !page.ClientScript.IsClientScriptBlockRegistered("alert"))
{
page.ClientScript.RegisterClientScriptBlock(
typeof(Alert),
"alert",
"<script type=\"text/javascript\">alert(\"Fred\");</script>");
}
该字符串包含的控制字符数量令人遗憾,但据我所知,没有任何
“
或”
字符。是否有一个可以调用的函数来清理字符串,以便通过Javascript警报显示该字符串?这家伙也有类似的问题,但没有通用的解决方案。在显示消息之前,您需要序列化消息,因为它可能包含破坏JS的字符。你可以使用这个类
例如:
var errorMsg = new JavaScriptSerializer().Serialize(error_message);
page.ClientScript.RegisterClientScriptBlock(
typeof(Alert),
"alert",
"<script type=\"text/javascript\">alert(\"" + errorMsg + "\");</script>");
var errorMsg=new JavaScriptSerializer().Serialize(错误消息);
page.ClientScript.RegisterClientScriptBlock(
类型(警报),
“警报”,
“警报(\”“+errorMsg+”\”);
您是否查看了源代码并查看了实际输出的内容?我猜您有换行符。请尝试使用转义字符串。请访问.NET 3.5+中支持的此only@banging我在OP中看不到任何需要针对特定框架版本的解决方案的内容。如果这成为一个问题,那么我将推荐另一个选项,例如在呈现字符串之前对其进行HTML编码。感谢您的帮助,但是由此产生的字符串产生了一个错误,抱怨缺少)
,给出的位置位于类型中的y
。此后,我尝试了Sain Pradeep评论中提到的问题中给出的解决方案,它产生了预期的输出。
Unterminated String Constant
var errorMsg = new JavaScriptSerializer().Serialize(error_message);
page.ClientScript.RegisterClientScriptBlock(
typeof(Alert),
"alert",
"<script type=\"text/javascript\">alert(\"" + errorMsg + "\");</script>");