2012-03-26 31 views
0
Public class AbcViewModel 
{ 
    public string native{get; set;} 
    public string other{get; set;} 
    public List<AbcViewModel> abcList{get; set;} 
} 

既然我的視圖是強類型的這個ViewModel,我需要檢查一些條件之前顯示字段。C#列表上的條件聲明

從我的控制器操作,我通過列表

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

條件:如果認爲我的列表中包含n計數。然後,如果任何索引的任何「本地元素」保持某個值,則顯示其他字段並隱藏,反之亦然。

即 像這樣的事情

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

這是不正確的語法,我認爲(IsNotEmpty不是一個有效的方法)。

告訴我這樣做的正確方法。

回答

1

你可以像下面這樣做

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

感謝KIM它的工作 – RollerCosta 2012-03-26 10:48:26

1

使用String.IsNullOrEmpty Method檢查指定的字符串是否爲空或空字符串。

試試這個:

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

試試這個:

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

IsNotEmpty是有效的方法?? – RollerCosta 2012-03-26 10:38:14

+0

哈哈,複製粘貼錯誤。我已經更新了我的答案。 – tobias86 2012-03-26 10:39:38

0

如果是你的名單滿弦的,那麼你應該能夠調用這樣

String.IsNullOrEmpty(****) 

的方法如果你還有其他的數據類型,你仍然可以自己寫一個方法來完成同樣的工作。