我在包含一些HTML + javascript的只读字符串上运行string.Format
,但我得到了System.FormatException
。
这是我的格式字符串:
<script type="text/javascript">
function {0}_showHideFieldWindow() {
if ({0}.IsCustomizationWindowVisible()) {
{0}.HideCustomizationWindow();
} else {
{0}.ShowCustomizationWindow();
}
}
</script>
我正在做的就是传递对象名称。像这样:
string.Format(javascript, "grid");
答案 0 :(得分:12)
由于你在字符串中有大括号,你需要将它们加倍( {{
和 }}
)以避免它们格式化者认为他们是代币。
您的字符串初始化应如下所示:
String javascript = @"<script type=""text/javascript"">
function {0}_showHideFieldWindow() {{
if ({0}.IsCustomizationWindowVisible()) {{
{0}.HideCustomizationWindow();
}} else {{
{0}.ShowCustomizationWindow();
}}
}}
</script>";
答案 1 :(得分:6)
String.Format
需要转义额外的括号。你可能最好做这样的事情,如果你不需要String.Format
的所有功能,这可能比转义每个括号更具可读性:
mystring.Replace("{0}","grid");