2011-01-05 2 views
88

Ne pas avoir beaucoup de chance, je donne les résultats suivants instruction if/else dans Razor qui fonctionne parfaitementRazor Si/Else syntaxe de l'opérateur conditionnel

<small> 
    @if(deletedView){ 
    @:Deleted 
    } 
    else { 
    @:Created 
    } by 
</small> 

Je suis en train de faire quelque chose comme ceci:

<small> 
    @(deletedView) ? @:Deleted : @:Created by 
</small> 

Mais cela échoue lamentablement. Quelle est la syntaxe correcte?

+3

http://stackoverflow.com/questions/4091831/how-to-use-ternary-operator-in-razor-specifically-on-html-attributes –

+0

l'homme. merci –

+0

mmhh, ne peut pas fermer ma propre question. –

Répondre

169

Vous devez mettre toute l'expression ternaire entre parenthèses. Malheureusement, cela signifie que vous ne pouvez pas utiliser « @ », mais vous pouvez faire quelque chose comme ceci:

@(deletedView ? "Deleted" : "Created by") 

Razor prend actuellement en charge un sous-ensemble de C# expressions sans utiliser @() et malheureusement, les opérateurs ternaires ne font pas partie de cet ensemble.

+0

@David Lively déjà répondu par des remerciements :) Au moins peut "fermer" la question maintenant ... –

+3

+1 pour 'Razor prend actuellement en charge un sous-ensemble d'expressions C# sans utiliser @()' se demandait pourquoi @if (condition) { m'a donné une erreur – Tom

+0

@Andrew Nurse, Comme vous l'avez mentionné, "Razor supporte actuellement un sous-ensemble d'expressions C# sans utiliser @() et malheureusement, les opérateurs ternaires ne font pas partie de cet ensemble". Je voudrais savoir ce que tous les opérateurs font partie de cet ensemble? Merci! – Vikram

Questions connexes