string.Format генерирует исключение System.Format для HTML + JavaScript - PullRequest
7 голосов
/ 01 мая 2009

Я запускаю string.Format для строки только для чтения, которая содержит немного HTML + JavaScript, но вместо этого я получаю System.FormatException.

Это моя строка формата:

<script type="text/javascript">
    function {0}_showHideFieldWindow() {
        if ({0}.IsCustomizationWindowVisible()) {
            {0}.HideCustomizationWindow();
        } else {
            {0}.ShowCustomizationWindow();
        }
    }
</script>

Все, что я делаю, это передаю имя объекта. Как это:

string.Format(javascript, "grid");

Ответы [ 2 ]

12 голосов
/ 01 мая 2009

Поскольку у вас есть фигурные скобки в строке, вам нужно их избежать, удвоив их ({{ и }}), чтобы форматировщик не думал, что они являются токенами. .

Ваша инициализация строки должна выглядеть примерно так:

String javascript = @"<script type=""text/javascript"">
            function {0}_showHideFieldWindow() {{
            if ({0}.IsCustomizationWindowVisible()) {{
                {0}.HideCustomizationWindow();
            }} else {{
                {0}.ShowCustomizationWindow();
            }}
        }}
    </script>";
6 голосов
/ 01 мая 2009

String.Format нужны экранированные скобки. Возможно, вам лучше сделать что-то подобное, что может быть более читабельным, чем экранирование каждой скобки, если вам не нужны все функции String.Format:

mystring.Replace("{0}","grid");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...