2013-06-24 15 views
5
<b>Start Date: </b>@employee["StartDate"].<br /> 

使用MVC剃刀3/C#空/空值,我怎麼能檢查是否employee["StartDate"]值爲空/空的CSHTML?所以,如果是,我反而顯示:如何爲您在CSHTML

<b>Start Date: </b>Unknown.<br /> 

我想:

@if(employee["StartDate"] == null){<b>Start Date: </b>Unknown.<br />} 

,但不起作用。

+0

什麼是你的員工的模型是什麼樣子? –

+0

@ string.IsNullOrEmpty(員工[ 「開始日期」]。的ToString())看看這個工程 –

回答

10

嘗試

<b>Start Date: </b>@(employee["StartDate"] ?? "Unknown").<br /> 

??返回左側值,或右側值,如果左側值是null

1

如果的startDate是一個DateTime嘗試將其與DateTime.MinValue比較。

如果您有更多的問題,你可以把斷點在剃刀代碼,看看究竟是那場

+0

或者他們可以使用的DateTime?並檢查是否爲空。如果沒有任何價值,爲什麼還要爲自己做更多的工作來將StartDate設置爲MinValue? – IyaTaisho

+0

@IyaTaisho你誤解了我。因爲有問題,他寫道他嘗試了空值檢查,我確定該值不爲空 –

+0

但它不一定是MinValue或者......如果它不爲null,它可能在最小值和最大值之間的任何地方。因此,爲什麼我說,如果他們只使用DateTime會容易得多?開始,然後你可以比較一個空值。 – IyaTaisho

3

如果你只擔心null或空

@(String.IsNullOrEmpty(employee["StartDate"])?"Unknow":employee["StartDate"]) 
2

我結束了使用此:

@if(employee["StartDate"].ToString() == ""){<b>Start Date: </b>Unknown.<br />} 
else{<Start Date: </b>@employee["StartDate"].<br />} 

但有一個「乾淨」的方式來寫這個?

+0

是'員工[「開始日期」]'一個DateTime?我沒有看到如何在'DateTime'上調用'ToString'可以給你一個空字符串。 –

-1

試過像下面,我已經厭倦了類似空檢查,它應該工作

@if(employee["StartDate"] != DateTime.MinValue){ 
    <Start Date: </b>@employee["StartDate"].<br /> 
} 
else{ 
    <b>Start Date: </b>Unknown.<br /> 
}