Intellisense - Javascript в строке - PullRequest
       25

Intellisense - Javascript в строке

1 голос
/ 24 февраля 2010

У меня длинный javascript в строке и программно использующий RegisterClientScriptBlock, я добавляю его на свою страницу.

Есть ли способ заставить intellisense обнаруживать мой javascript внутри строки?

Код:

string Script0 =
@"
function dummy()
{
}

var PTRValues = new Array();
...
...
..
";

this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myCustomScriptBlock", Script0, true);

Ответы [ 3 ]

2 голосов
/ 24 февраля 2010

Нет, вы не можете получить intellisense внутри строки JS. IDE не знает, что эта конкретная строка - JS.

Если это долго, не помещайте его в файл * .cs. Вместо этого сохраните это в * .js. Если вы действительно хотите, вы можете загрузить файл в память во время выполнения и использовать его в html вместо ссылки.

0 голосов
/ 26 февраля 2010

Хорошо, эти ребята приближаются ... Не НИКОГДА не вставляйте скрипты в код. Всегда для встраивания в качестве ресурса или для создания прототипов и разработки используйте ClientScript для визуализации тега <script/> и ссылки на файл .js.

Существует слишком много причин, по которым вы бы не хотели вставлять скрипт в код для перечисления. погуглите.

Что вам нужно, чтобы визуализировать некоторый javascript из кодовой области через ClientScript, и вы хотели бы иметь поддержку intellisense времени разработки?

Хорошо, Для получения intellisense вам понадобится .js некоторого вида. Подход, который я предлагаю для повышения удобства сопровождения и предотвращения дублирования сценариев, которые могут быть не синхронизированы:

  1. создать файл EMPTY с именем myScript.js.

  2. создайте другой скрипт, содержащий ваш код с именем myScript-vsdoc.js

  3. отметить myScript-vsdoc.js как встроенный ресурс и использовать его как встроенный веб-ресурс

  4. тем временем, вернувшись в IDE, добавьте тег сценария, указывающий на myScript.js, который является EMPTY файлом

  5. нажмите SHIFT-CTRL-J и bingo, у вас есть intellisense для встроенного сценария, встроенный сценарий находится в исходном файле, который можно редактировать и обнаружить, и у вас нет дублирования.

Вот как я это делаю.

0 голосов
/ 24 февраля 2010

К сожалению, это невозможно.

Лучшее решение - поместить код в отдельный файл .js, а затем написать следующее:

Page.ClientScript.RegisterClientScriptBlock(
    GetType(), 
    "myCustomScriptBlock", 
    File.ReadAllText(myJSFilePath), 
    true
);

Для оптимальной производительности вы должны прочитать ее только один раз, а затем сохранить в кеше.

...