有可能以某种方式做到这一点而不取出@?它不喜欢@
cJavaScript.AppendFormat(@"
function GetNextProductIDs(state)
{
var productIDs = new Array();
var {0}lastProductFoundIndex = $.inArray({0}lastProductID, {0}allProductIDs);
return productIDs.join();
}; ", ClientID);
答案 0 :(得分:15)
问题不在于@,而在于大括号。使用两个花括号将属性逃脱。
cJavaScript.AppendFormat(@"
function GetNextProductIDs(state)
{{
var productIDs = new Array();
var {0}lastProductFoundIndex = $.inArray({0}lastProductID, {0}allProductIDs);
return productIDs.join();
}}; ", ClientID);
答案 1 :(得分:0)
我喜欢使用string.Concat或StringBuilder将这样的多行字符串附加在一起。通常我并不关心cr / lf是否存在,但如果你这样做,你可以调整:
string fmt = string.Concat(
"function GetNextProductIDs(state) ",
"{",
"var productIDs = new Array();"
...
);
cJavaScript.AppendFormat(fmt, ClientID);
答案 2 :(得分:0)
所有“@”正在做的是纪念换行符。您可以通过用“\ r \ n”替换换行符来删除“@”:
cJavaScript.AppendFormat(
"function GetNextProductIDs(state)\r\n" +
"{\r\n\r\n" +
" var productIDs = new Array();\r\n\r\n" +
" var {0}lastProductFoundIndex = $.inArray({0}lastProductID, {0}allProductIDs);\r\n" +
" return productIDs.join();\r\n" +
"}; ", ClientID);
答案 3 :(得分:0)
StringBuilder
的{{1}}方法采用格式字符串。因为您使用的字符串包含AppendFormat
和{
作为JavaScript方法花括号,所以它将该方法解释为格式标记。
要转义它们,请使用双花括号}
和{{
。