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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章