Передача строкового параметра с буквенными символами в функцию javascript в случае сбоя аргумента - PullRequest
0 голосов
/ 17 декабря 2010

Я попытался вызвать функцию javascript из codebehind (c # .net) с параметром строковый параметр, состоящий из всех буквенных символов (например: function1 ("fsdadfa");), и не смог заставить его работать , Но когда я заменил буквенные символы на все числовые (например: function1 ("12234");), это сработало.

Мой код выглядит следующим образом:

я использовал string.Format для вызова функции. Мой код выглядит следующим образом:

     string.Format("javascript:OpenNewsletter1({0},{1})",reader.GetInt("Id").ToString(),"dcsfs")

проблема возникает со вторым параметром.

Кто-нибудь знает, почему это произошло? если так, пожалуйста, помогите мне.

Ответы [ 3 ]

1 голос
/ 17 декабря 2010

Параметр вставляется в строку формата как есть, поэтому

string.Format("javascript:OpenNewsletter1({0},{1})",123,"dcsfs")

выходы

javascript:OpenNewsletter1(123,dcsfs)

, где javascript интерпретирует dcsfs как имя переменной.

Попробуйте

string.Format("javascript:OpenNewsletter1({0},'{1}')",123,"dcsfs")

что даст

javascript:OpenNewsletter1(123,'dcsfs')

, который будет знать javascript для обработки строкового литерала.

1 голос
/ 17 декабря 2010

Я думаю, вам нужно добавить кавычки вокруг строки (параметр {1}) для JavaScript:

string.Format(
   "javascript:OpenNewsletter1({0},\"{1}\")",
   reader.GetInt("Id").ToString(),
   "dcsfs")
1 голос
/ 17 декабря 2010

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

string.Format("javascript:OpenNewsletter1({0}, '{1}')",
    reader.GetInt("Id").ToString(),
    HttpUtility.HtmlEncode("dcsfs"))

Обратите внимание на одинарные кавычки вокруг второго параметра и его кодировку, потому что, если значение содержит специальные символы, оно может нарушить ваш код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...