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

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

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

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

例子:

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


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

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


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

发布了27 篇原创文章 · 获赞 283 · 访问量 11万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章