2011-01-05 14 views
88

Nie mając dużo szczęścia, mam następujące if/else w Razor który działa idealnieRazor Jeśli składnia/Else operator warunkowy

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

Staram się zrobić coś takiego:

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

Ale to niestety się nie udaje. Jaka jest prawidłowa składnia?

+3

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

+0

u człowieka. dziękuję –

+0

mmhh, nie mogę zamknąć własnego pytania. –

Odpowiedz

169

Trzeba umieścić całe wyrażenie trójskładnikowe w nawiasach. Niestety oznacza to, że nie można korzystać z „@”, ale można zrobić coś takiego:

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

Razor aktualnie obsługuje podzbiór C# wyrażeń bez użycia @() i niestety, operatorów trójskładnikowych nie są częścią ten zestaw.

+0

@David Lively już odpowiedział przez podziękowania :) Przynajmniej może "zamknąć" teraz pytanie ... –

+3

+1 dla 'Razor obsługuje obecnie podzbiór wyrażeń C# bez użycia @()' zastanawiał się, dlaczego @if (warunek) { dała mi błąd – Tom

+0

@Andrew Nurse, Jak już wspomniałeś, "Razor obsługuje obecnie podzbiór wyrażeń C# bez użycia @() i niestety, operatory trójskładnikowe nie są częścią tego zestawu". Chciałbym wiedzieć, co wszyscy operatorzy są częścią tego zestawu? Dzięki! – Vikram

Powiązane problemy