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

Utilizzando MVC Razor 3/C#, come posso controllare se employee["StartDate"] valore è nullo/vuoto nel cshtml? In modo che se lo è, io invece Display:Come posso controllare per nulla/valore vuoto in cshtml

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

ho provato:

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

ma che non funziona.

+0

cosa fa il tuo impiegato modello simile? –

+0

@ string.IsNullOrEmpty (impiegato ["StartDate"]. ToString()) vedi se questo funziona –

risposta

10

Prova

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

?? ritorno il valore di sinistra, o il valore di destra se il valore di sinistra è null.

1

Se startDate è un DateTime, provare a confrontarlo con DateTime.MinValue.

Se hai più problemi si può mettere punto di interruzione nel codice di rasoio per vedere che cosa è esattamente questo campo

+0

Oppure potrebbero usare DateTime? e basta controllare per null. Perché fare più lavoro da solo per impostare StartDate su MinValue se non c'è alcun valore? – IyaTaisho

+0

@IyaTaisho mi hai frainteso. Perché in questione ha scritto che ha provato il controllo nullo, sono sicuro che il valore non è nullo –

+0

Ma non è necessariamente anche il valore MinValue ... Potrebbe essere ovunque tra i valori minimo e massimo se non fosse nullo . Quindi, perché dico, sarebbe molto più facile se avessero appena usato DateTime? per cominciare e poi puoi confrontare con un valore nullo. – IyaTaisho

3

Se siete preoccupati solo di nullo o vuoto

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

ho finito per usare questo:

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

Ma c'è un modo "più pulito" per scrivere questo?

+0

È 'employee [" StartDate "]' a DateTime? Non vedo come chiamare 'ToString' su un' DateTime' possa darti una stringa vuota. –

-1

hanno provato come qui di seguito, ho stanco di controllo simile nulla, dovrebbe funzionare

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