string.Format exception输入字符串的格式不正确

时间:2015-08-19 14:00:46

标签: c# .net string string-formatting resourcedictionary

我从string.Format(...)操作收到以下错误:

  

System.FormatException - 输入字符串的格式不正确。

我有一个资源字典,其中包含一个带有基本html页面的条目。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title of the document</title>

    <style>
        * { 
            margin: 0; 
            padding: 0; 
        }

        body { 
            font-family: 'Arial, Verdana', Fallback, sans-serif; 
            font-size: 14px;
        }

        table { 
            background-color: #eeeeee; 
            width: 100%; 
            padding: 10px;
            margin: 5px;
        }

        h1 {
            font-size: 16px;
            font-weight: bold;
            margin: 20px 0 10px 0;
        }
    </style>
</head>

<body>
    text<br />

    <table>
        <tr>
            <td>Text 1</td>
            <td>{0}</td>
        </tr>
        <tr>
            <td>Text 2</td>
            <td>{1}</td>
        </tr>
        <tr>
            <td>Text 3</td>
            <td>{2}</td>
        </tr>
        <tr>
            <td>Text 4</td>
            <td>{3}</td>
        </tr>
        <tr>
            <td>Text 5</td>
            <td>{4}</td>
        </tr>
        <tr>
            <td>Text 6</td>
            <td>{5}</td>
        </tr>
        <tr>
            <td>Text 7</td>
            <td>{6}</td>
        </tr>
    </table>
    <br />

    <h1>Header1</h1>

    <table>
        <tr>
            <td><a href="http://www.google.com">http://www.google.com</a></td>
        </tr>
        <tr>
            <td>Text 8: {7}</td>
        </tr>
    </table>
    <br />
</body>

string.Format(...)操作如下所示:

var emailHtml = string.Format(
                    WebUtility.HtmlEncode(EmailResource.EmailTemplate),
                    "text1",
                    "text2",
                    "text3",
                    "text4",
                    "text5",
                    "text6",
                    "text7",
                    "text8");

有谁知道我犯了什么错误? 是不是可以像这样填写资源字典中的占位符?

1 个答案:

答案 0 :(得分:10)

你有很多不是格式说明符的花括号,例如:

    { 
        margin: 0; 
        padding: 0; 
    }

您需要复制它们:

    {{
        margin: 0; 
        padding: 0; 
    }}

或使用不同的格式化方法(如模板引擎)。