2012-03-26 13 views
0

Jetzt, da meine Ansicht stark in dieses ViewModel eingetippt ist, muss ich einige Bedingungen überprüfen, bevor Felder angezeigt werden.C# Bedingte Anweisung in der Liste

Aus meiner Controller Aktion Ich bin das Bestehen der Liste

public ActionResult actionName() 
{ 
    AbcViewModel viewModel=new AbcViewModel(); 
    viewModel=model.getAbcList(); 
    return View(viewModel); 
} 

Zustand: Wenn meine Liste enthält n zählt soll. Wenn irgendein "natives Element" irgendeines Indexes irgendeinen Wert enthält, dann zeige andere Felder an und verstecke umgekehrt.

heißt So etwas wie dieses

@if (Model.languageList.Any(x => x.nativeLanguage.IsNotEmpty() == false) 
{ 
    @LabelFor(x=>x.other) 
} 
else 
{ 
    @LabelFor(x=>x.native) 
} 

Dies ist nicht die richtige Syntax ist Ich denke, (IsNotEmpty ist keine gültige Methode).

Sagen Sie mir den richtigen Weg, dies zu tun.

Antwort

1

Sie können es tun, wie dieses

@if (Model.languageList.Any(x=> !string.IsNullOrEmpty(x.nativeLanguage))==false){ @LabelFor(x=>x.other) } 
    else{@LabelFor(x=>x.native)} 
+0

danke KIM es funktioniert – RollerCosta

1

Verwenden String.IsNullOrEmpty Method zu prüfen, ob der angegebene String ist null oder eine leere Zeichenfolge.

versuchen Sie dies:

@if (!Model.languageList.Any(x=> string.IsNullOrEmpty(x.nativeLanguage)) 
{ 
    @LabelFor(x=>x.other) 
} 
else 
{ 
    @LabelFor(x=>x.native) 
    } 
0

Try this:

@if (Model.languageList.Any(x => string.IsNullOrEmpty(x.nativeLanguage)) 
{ 
    @LabelFor(x => x.other) 
} 
else 
{ 
    @LabelFor(x => x.native) 
} 
+0

IsNotEmpty ist gültige Methode ?? – RollerCosta

+0

Lol, Fehler beim Kopieren. Ich habe meine Antwort aktualisiert. – tobias86

0

Wenn Ihre Liste voll von Strings, dann sollten Sie in der Lage sein, ein Verfahren zu nennen wie diese

String.IsNullOrEmpty(****) 

Wenn Sie auch andere Datentypen haben, können Sie sich immer noch eine Methode schreiben, um den gleichen Job zu machen.