63 votes

syntaxe de rasoir - boucle foreach

 @foreach (string s in "1,2,3".Split(',')) {
  s is equal to @s<br/>
}
 

Je veux cracher: s est égal à 1 s est égal à 2 s est égal à 3

Mais je reçois toutes sortes d’erreurs parce que Visual Studio pense que ce qui est entre les {} est du code, mais je veux que ce soit du balisage.

108voto

Domenic Points 40761

Je viens de voir ceci sur le blog de ScottGu ce matin : utilisez @: avant cette ligne:

 @foreach (string s in "1,2,3".Split(',')) {
  @: s is equal to @s<br/>
}
 

Sinon, utilisez les balises <text /> :

 @foreach (string s in "1,2,3".Split(',')) {
  <text>s is equal to @s<br/></text>
}
 

18voto

SLaks Points 391154

Scott Guthrie vient de répondre à cette question ce matin .
Le changer en

 @foreach (string s in "1,2,3".Split(',')) {
  @: s is equal to @s<br/>
}
 

5voto

Pharabus Points 4664
 @foreach (string s in "1,2,3".Split(',')) {
  <text>s is equal to </text>@s<br/>
}
 

Je pense que c’est parce que vous analysez le texte en dehors des crochets, alors Razor pense que c’est du code. Essayez d’utiliser la balise razor text ci-dessus, elle est identique à celle de @: mais (pour moi du moins) c’est un peu plus intuitif (ça ne pas analyser les tags)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X