在使用String.Format()的過程中,一直沒有遇到這種類型的問題,直到在寫一個小sample的過程中,需要動態生成一段javascript代碼並且通過ScriptManager.RegisterCliemtScriptBlock方法將其注冊到前台,這裡使用String.Format來區分動態和靜態部分,並且生成最終的腳本代碼。
在編程中發現帶有“{”和“}”符號的腳本代碼在String.format()過程中會報錯,提示輸入字符串不正確。反復檢查了javascript,並沒有什麼可疑的地方。後來通過查詢一些資料,由於String.Format()通過檢測“{”,“}”符號來判斷,需要參數字符串插入的位置,如果你繼續在源字符串中使用這個字符時,可能造成混淆(你可以將其當做是關鍵字),就像你需要在字符串中加入雙引號時,同樣需要使用轉義字符。 所以在實際開發中,你需要吧”{“和”}“字符以”{{“和”}}“代替。
很小的一個問題,可能是個人編程經驗不足,贻笑大方,這裡寫下來作為自己的提醒。
例子:
另外一個, 如果你的字符串中含有引號,需要額外再加上一個引號才可以正常顯示,即“”代替”, 例如:
string script="function A() {var text=""""}";
通過RegisterCliemtScriptBlock方法可以注冊為function A() {var text="";}