Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么使用大括号({})的字符串会出现FormatException?_C#_String_Formatting - Fatal编程技术网

C# 为什么使用大括号({})的字符串会出现FormatException?

C# 为什么使用大括号({})的字符串会出现FormatException?,c#,string,formatting,C#,String,Formatting,我正试图创建一个简单的JavaScript文件,从代码后面注入,并希望将变量名称附加到消息中 string javascript = string.Format ( @"var msg = '{0} '; if(confirm(msg)) {

我正试图创建一个简单的JavaScript文件,从代码后面注入,并希望将变量名称附加到消息中

 string javascript = string.Format
                            (
                                @"var msg = '{0} ';
                                 if(confirm(msg))
                                {                                          
                                    hdnfield.value='Yes';
                                } else {
                                    hdnfield.value='No';
                                }
                                    submit();", variableName);
但是得到了一个例外。正确的方法是什么


一如既往地感谢。

if/else语句中的大括号没有转义,这导致调用
string.Format
时出现问题,该调用使用大括号指示占位符

string javascript = string.Format
    (
        @"var msg = '{0} ';
         if(confirm(msg))
        {{                                          
            hdnfield.value='Yes';
        }} else {{
            hdnfield.value='No';
        }}
            submit();", variableName);

if/else语句中的大括号未转义,这导致调用
string.Format
时出现问题,该函数使用大括号指示占位符

string javascript = string.Format
    (
        @"var msg = '{0} ';
         if(confirm(msg))
        {{                                          
            hdnfield.value='Yes';
        }} else {{
            hdnfield.value='No';
        }}
            submit();", variableName);

我认为您的意思是将整个文件输入ASP.NET中的
String.Format(Format,value1,value2,value3…

如果是这样的话,那么使用Javascript将遇到问题,因为它会将每个开始和结束的花括号解释为要替换的标记的开始或结束

您最好在模板中使用某种占位符,如
#######
$$SOMEVALUE$$
,将该文件加载到字符串中,并使用一些
字符串。Replace(whatreplace,whatreplaceittwith)
函数进行替换

意味着您可以定义自己的规则,用什么替换什么。

String.Format
非常灵活且功能强大,但内容中没有未替换的大括号。

我认为您的意思是将整个文件输入ASP.NET中的
String.Format(Format,value1,value2,value3…

如果是这样的话,那么使用Javascript将遇到问题,因为它会将每个开始和结束的花括号解释为要替换的标记的开始或结束

您最好在模板中使用某种占位符,如
#######
$$SOMEVALUE$$
,将该文件加载到字符串中,并使用一些
字符串。Replace(whatreplace,whatreplaceittwith)
函数进行替换

意味着您可以定义自己的规则,用什么替换什么。
String.Format
非常灵活且功能强大,但内容中没有带花括号