2013-01-14 2 views
4

Je ne fais que commencer à utiliser les pages Web et je n'arrive pas à comprendre pourquoi un bloc de code ne fonctionne pas. J'ai besoin d'afficher conditionnellement un WebGrid. Avant de commencer, j'ai ceci:Utilisation du bloc de code rasoir

<div> 
@grid.GetHtml() 
</div> 

Maintenant, j'essaie d'insérer une instruction if:

<div> 
    @if (condition) { grid.GetHtml(); } 
</div> 

Il en résulte pas html de grille d'affichage. En fait, même sans instruction if et juste avec un bloc de code que je reçois pas html:

<div> 
    @{ grid.GetHtml(); } 
</div> 

Malheureusement, je suis en cours d'exécution WebMatrix donc je ne peux pas debug, mais il semble chaque fois que j'utilise des blocs de code les déclarations n » t exécuter.

+0

OK, il semble que je dois utiliser un autre symbole @ pour la sortie HTML: '@if (condition) {@ grid.GetHtml()} ' –

Répondre

3

Pour les instructions à une ligne, vous devez utiliser le signe @ au lieu de le placer dans un bloc de code. Si vous le placez toujours dans un bloc de code (il y en a dans certains cas) il n'affichera pas votre grille en appelant simplement grid.GetHtml(); C'est pourquoi le signe @ est utilisé, cela signifie que vous voulez écrire une valeur, mais vous ne devriez l'utiliser que si vous écrivez en code HTML. Lorsque vous utilisez un bloc de code, vous devez indiquer au serveur que cette valeur doit être écrit, comme ceci:

@{ 
this.Write(grid.GetHtml()); 
} 
Questions connexes