String.Format 源字符串包含大括号的小问题

在使用String.Format()的过程中,一直没有遇到这种类型的问题,直到在写一个小sample的过程中,需要动态生成一段javascript代码并且通过ScriptManager.RegisterCliemtScriptBlock方法将其注册到前台,这里使用String.Format来区分动态和静态部分,并且生成最终的脚本代码。

在编程中发现带有“{”和“}”符号的脚本代码在String.format()过程中会报错,提示输入字符串不正确。反复检查了javascript,并没有什么可疑的地方。后来通过查询一些资料,由于String.Format()通过检测“{”,“}”符号来判断,需要参数字符串插入的位置,如果你继续在源字符串中使用这个字符时,可能造成混淆(你可以将其当做是关键字),就像你需要在字符串中加入双引号时,同样需要使用转义字符。 所以在实际开发中,你需要吧”{“和”}“字符以”{{“和”}}“代替。

很小的一个问题,可能是个人编程经验不足,贻笑大方,这里写下来作为自己的提醒。

例子:

  1. public static string Script = @"function Yes() {{  
  2.           var back = document.getElementById('wholePage');  
  3.           back.parentNode.removeChild(back);  
  4.           var message = document.getElementById('messageBox');  
  5.           message.parentNode.removeChild(message);{0}}}”;  

另外一个, 如果你的字符串中含有引号,需要额外再加上一个引号才可以正常显示,即“”代替”, 例如:

string script="function A() {var text=""""}";  

通过RegisterCliemtScriptBlock方法可以注册为function A() {var text="";}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值