2017-10-17 59 views
0

我是初學者。 我創建了一個webform應用程序。我使用實體框架和視圖模型。 我有很多dateTime實體,但我想保持日期沒有時間。 一個例子:dateTime沒有時間在aspx

<span><%#: (Item.DateNextVisit.HasValue ? Item.DateNextVisit.ToString() : string.Empty) %> </span>

結果:16/11/2021 00:00:00

如何保持迄今只在我的跨度標籤?

我已經嘗試添加「ToString(」yyyy-MM-dd「)」或替換爲「ToShortDateString()」。但它不起作用。 也許這不是宣佈它的好地方。但我不想在代碼背後聲明這一點。 是否可以在aspx標籤中添加屬性,條件是?

預先感謝您

回答

3

根據您所使用的HasValue財產,Item.DateNextVisit不是DateTime,這是一個Nullable<DateTime>

Nullable<T>結構體沒有和接受字符串作爲參數的ToString()方法的過載。它只有一個無參數ToString(),它返回當前對象的值的文本表示形式。
改爲使用Item.DateNextVisit.Value.ToString("yyyy-MM-dd")

爲了把它放在你提供的代碼的情況下:

<span><%#: (Item.DateNextVisit.HasValue ? Item.DateNextVisit.Value.ToString("yyyy-MM-dd") : string.Empty) %> </span> 
+0

或'Item.DateNextVisit.Value.ToShortDateString()' –

+0

@TimSchmelter如果你想返回一個文化特定的字符串表示,那麼是的。如果你想要一個特定的格式,我不會選擇任何可能受文化影響的東西。 –

+0

非常感謝!它完美的作品!:D 確實它是可空的 BoumBoumBam

0

我你並欣賞選購的.Net系列的努力。

使用以下格式:

String.Format("{0:M/d/yyyy}", Item.DateNextVisit); 

按照此鏈接中的.Net與日期時間進一步發揮:

http://www.csharp-examples.net/string-format-datetime/

,並豎起大拇指的答案。乾杯!

0

如果DateNextVisitNullable<DateTime>您可以使用空條件運算符?.來獲取該值或返回null。您也可以使用空合併運算符??如果值爲null返回一個空字符串:

Item.DateNextVisit?.ToString("YYYY-MM-DD") ?? "" 

如:

<span><%#: Item.DateNextVisit?.ToString("YYYY-MM-DD")??"" %> </span> 

如果DateNextVisit爲空,?.運營商將返回null insted的調用的ToString()??將替換爲空字符串

+0

非常感謝,這也是一個很好的方法 – BoumBoumBam