2010-06-01 7 views
3

Est-il possible de faire les choses de manière PHP dans ASP.Net? J'ai vu <%= %> mais j'ai essayé et je n'ai pas pu le faire fonctionner.Possibilité de faire du code en ligne dans le balisage ASPX?

L'équivalent PHPish de ce que je veux faire est

<script src="<?php echo ResolveUrl("jquery/js/jquery.js"); ?>"></script> 
+0

pourquoi? parce que vous votre répertoire virtuel localhost vs aucun répertoire virtuel sur l'environnement en direct? –

+0

Vous voulez vraiment utiliser cela avec prudence mais comme "meilleures pratiques" disent généralement de garder votre interface utilisateur et la logique séparée autant que possible. – Daisetsu

+0

@Dai oui je sais mais ajouter un contrôle littéral et le modifier dans le code-behind semble vraiment sale. @ Claudio. Je suis tombé sur un problème où en développement notre chemin virtuel est '/' et en production notre chemin est '/ product' – Earlz

Répondre

6

Oui, il est tout à fait possible. Vous devriez vous familiariser avec toutes les variantes des balises (dites) d'alligator.

Mettez le code entre <% %> blocs. La variante <%= %> est un raccourci pour Response.Write et est utilisée comme raccourci pour la sortie directe d'une variable vers la page.

Ce qui suit devrait fonctionner tant que ResolveUrl retourne une chaîne. Remarquez qu'il n'y a pas de ";" pour mettre fin à la ligne cependant. Pourquoi ne pouvez-vous pas utiliser le chemin absolu?

<script src="<%= ResolveUrl("jquery/js/jquery.js") %>"></script> 
+0

Juste pour faire une note, j'ai plus tard changé mon code pour utiliser' <%# %> 'plutôt à cause de ce problème http://stackoverflow.com/questions/778952/the-controls-collection-cannot-be-modified-because-the-control-contains-code-blo – Earlz

+4

N'oubliez pas <%: %> dans asp.net 4.0 pour HtmlEncoding – Aren