Utilisation de la méthode côté serveur dans un fichier JavaScript externe

Dans le projet ac # aspx. Je peux atteindre une méthode statique sur le côté client avec l'importation de mon espace de noms au début de la partie de la page, comme suit.

<%@ Import Namespace="utl=portal.library.Utilities" %> 

Et que dans peut l'utiliser sur le côté client de la même page.

 <script type="text/javascript"> var categoryPage; categoryPage = '<%= utl.getcategoryName().ToString() %>'; </script> 

Ma question est, puis-je utiliser cela '<% = utl.getcategoryName (). ToString ()%>' dans un fichier javascript externe?

Est-ce possible quelque chose comme ça?

 <%@ Import Namespace="utl=portal.library.Utilities" %> <script src="/scripts/trial.js" type="text/javascript"></script> 

Et dans le fichier trial.js

 var categoryPage; categoryPage = '<%= utl.getcategoryName().ToString() %>'; 

Merci d'avance..

Je ne le pense pas, car le fichier .JS externe ne serait pas traité par ASP.NET et n'aurait donc pas accès à ces types de variables.

Je ne pense pas que vous le pouvez, mais vous pouvez essayer de passer la variable du côté du serveur en tant que paramètre à une fonction JS dans le fichier JS externe.

Vous pouvez créer un fichier .aspx qui ne produit que Javascript au lieu de HTML. Tant que vous avez défini le type de contenu sur application/x-javascript dans le code derrière, cela fonctionnera.

Par exemple, créez Test.js.aspx. Ensuite, dans le code derrière Test.js.aspx.cs:

 protected void Page_Load( object sender, EventArgs e ) { Response.ContentType = "application/x-javascript"; } protected string GetMessage() { return "Hello, World!"; } 

Dans le fichier Test.js.aspx:

 window.onload = function() { var msg = <%=GetMessage() %> alert(msg); } 

Maintenant, il est vrai que le Javascript en cours d'exécution sur le client ne peut pas appeler des fonctions C # s'exécutant sur le serveur. Vous devriez avoir AJAX pour cela. Mais vous pouvez certainement utiliser ce modèle pour générer Javascript qui utilise ASP.NET lorsqu'il est généré.