2010-02-23 7 views
1

J'ai un long javascript dans une chaîne et en utilisant par programme RegisterClientScriptBlock, je l'ajoute à ma page.Intellisense - Javascript dans une chaîne

Est-il possible de faire en sorte que l'intellisense détecte mon javascript à l'intérieur de la chaîne?

code:

string Script0 = 
@" 
function dummy() 
{ 
} 

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

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

Répondre

2

Non, vous ne pouvez pas obtenir IntelliSense dans la chaîne JS. L'EDI ne sait pas que cette chaîne particulière est JS.

Si c'est long, ne le placez pas dans le fichier * .cs. Au lieu de le stocker dans un * .js. Si vous voulez vraiment, vous pouvez charger le fichier dans la mémoire à l'exécution et le servir incorporé dans le HTML au lieu de référencé.

0

Malheureusement, ce n'est pas possible.

La meilleure solution est de faire mettre le code fichier .js séparé, puis écrivez ce qui suit:

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

Pour des performances optimales, vous devriez le lire une seule fois, puis stocker dans dans le cache.

0

Ok, ces gars se rapprochent ... Ne pas JAMAIS embarquer des scripts dans le code. Toujours incorporé en tant que ressource ou pour le prototypage et le développement, utilisez ClientScript pour afficher un tag <script/> et référencer un fichier .js.

Il y a juste trop de raisons pour lesquelles vous ne voudriez pas incorporer de script dans le code. recherche le sur Google. Qu'est-ce que vous cherchez est de rendre un peu de javascript à partir du codebehind via ClientScript et vous souhaitez un support de conception intellisense de temps de conception?

Ok, Pour obtenir intellisense, vous aurez besoin d'un .js de certains type. L'approche que je suggère, de promouvoir maintenabilité et empêcher les scripts de Dupe qui peuvent se désynchroniser est:

  1. créer un fichier VIDES appelé myScript.js.

  2. créer un autre script contenant votre nom de code myScript-vsdoc.js

  3. marque myScript-vsdoc.js comme ressource incorporée et le servir au fur et à embedded web resource

  4. Pendant ce temps, dans l'IDE, ajoutez une balise de script pointant vers myScript.js, qui est un EMPTY fichier

  5. appuyez sur SHIFT-CTRL-J et bingo, vous avez intellisense pour votre script intégré, votre em Le script lit est dans un fichier source qui est modifiable et découvrable et vous n'avez pas de duplication.

Voilà comment je le fais.

Questions connexes