Как отформатировать DateTime в случае Nullable? - PullRequest
0 голосов
/ 12 января 2019

Как получить .Tostring() Перегрузки для Nullable Datetime??

* 1005 например *

public DateTime BirthDate { get; set; }

В случае вышеуказанного кода я могу отформатировать дату рождения.

Но в случае кода ниже я не могу получить все перегрузки метода .ToString().

public DateTime? BirthDate { get; set; }

Я действительно хочу применить формат к BirthDate в Razor Syntax?

* 1016 например *

<li><b>BirthDate</b> : @Model.BirthDate.ToString("dd/MM/yyyy")</li> // But this is not working.

Как применить формат для BirthDate в случае Nullable?

1 Ответ

0 голосов
/ 12 января 2019

Вы можете использовать нулевые условные операторы (доступно с C # 6.0).

string s = BirthDate?.ToString("dd/MM/yyyy");

Возвращает null, если BirthDate не имеет значения (равно нулю), т. Е. ToString не будет вызываться в этом случае. Если вы хотите вернуть текст в этом случае вместо этого, вы можете использовать оператор null-coalescing

string s = BirthDate?.ToString("dd/MM/yyyy") ?? "none";

или вы можете использовать троичный условный оператор (работает с более старыми версиями C #)

string s = BirthDate.HasValue ? BirthDate.Value.ToString("dd/MM/yyyy") : "none";

В Razor примените это в скобках (?, кажется, смущает Razor):

<li><b>BirthDate</b> : @(Model.BirthDate?.ToString("dd/MM/yyyy"))</li> 

или

<li>
    <b>BirthDate</b> : @(BirthDate.HasValue ? BirthDate.Value.ToString("dd/MM/yyyy") : "")
</li> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...