2016-04-01 11 views
0

Ich habe eine Liste von Umbraco-Seiten und ich möchte durchschleifen, ob eine Bool-Eigenschaft wahr ist, und wenn ja, möchte ich eine bestimmte Klasse anwenden das divTesten von mehreren Bedingungen (Else if) bei Verwendung des ternären Operators in der Rasiereransicht

Wie kann ich einen else wenn ternary Operator in Rasiermesser schreiben, um eine Klasse auf ein div anzuwenden. Wenn ich ternären wasnt verwenden, dann würde es so aussehen

if package.GetPropertyValue<bool>("test") 
{ 
    <div class="test1"></div> 
} 
else if (package.GetPropertyValue<bool>("test1")) 
{ 
    <div class="test1"></div> 
} 
else if (package.GetPropertyValue<bool>("test2")) 
{ 
    <div class="test2"></div> 
} 

in meinem Rasierer Ansicht wäre es so etwas wie wie folgt (aber nicht rechts)

<div class="@(package.GetPropertyValue<bool>("test") ? "test" : package.GetPropertyValue<bool>("test1") ? "test1" : "test2")"></div> 

Kann dies geschehen oder kann jemand vorschlagen, wie Ich kann eine bestimmte Klasse auf dieses div anwenden, wenn eine bestimmte Bedingung erfüllt ist?

vielen Dank paul

Antwort

1

Ja, können Sie nisten ternäre Operatoren, aber auch Nüsse vorsichtig gehen, oder Sie können den Code recht schwer zu lesen machen. Sie könnten etwas tun wie:

@{ 
var css = package.GetPropertyValue<bool>("test") ? "test" : 
    package.GetPropertyValue<bool>("test1") ? "test2" : 
     package.GetPropertyValue<bool>("test2") ? "test3" : ""; 
} 
<div class="@css"></div> 

Allerdings scheint dies wie ein schlechtes Stück Design. Was, wenn sie später eine andere Klasse haben wollen? Sie müssten dem ternären Operator und dem nächsten Mal usw. eine weitere Verschachtelungsebene hinzufügen. Wenn diese Eigenschaft nur zum Festlegen des Stils verwendet werden soll, verwenden Sie eine einzige Eigenschaft mit einem Dropdown-Menü, mit der sie stattdessen den Stil auswählen und eliminieren können die Notwendigkeit für die verschachtelten ternären Operatoren.

+0

Hallo Tim, danke für die Antwort, ich werde es versuchen. Es wird immer nur drei Divs geben, damit ich mir keine Gedanken darüber machen muss, ob ich mehr hinzufügen soll. Danke für Ihren Vorschlag, aber ich werde das im Hinterkopf behalten. – Paul