Як перевірити значення null/empty у cshtml

Start Date: @employee["StartDate"].

Використання MVC Razor 3/C #, як я можу перевірити, чи співробітник ["StartDate"] значення null/empty в cshtml? Отже, якщо це так, я покажу:

Start Date: Unknown.

Я намагався:

@if(employee["StartDate"] == null){Start Date: Unknown.
}

але це не працює.

5
Як виглядає ваша модель співробітника?
додано Автор Cameron Tinker, джерело
Як виглядає ваша модель співробітника?
додано Автор Cameron Tinker, джерело
@ string.IsNullOrEmpty (співробітник ["StartDate"]. ToString ()) перевірити, чи працює
додано Автор David Scott, джерело
@ string.IsNullOrEmpty (співробітник ["StartDate"]. ToString ()) перевірити, чи працює
додано Автор David Scott, джерело

8 Відповіді

Спробуй

Start Date: @(employee["StartDate"] ?? "Unknown").

?? return the left-side value, or the right-side value if the left-side value is null.

10
додано

Спробуй

Start Date: @(employee["StartDate"] ?? "Unknown").

?? return the left-side value, or the right-side value if the left-side value is null.

10
додано

Якщо ви тільки турбуєтеся про нульовий або порожній

@(String.IsNullOrEmpty(employee["StartDate"])?"Unknow":employee["StartDate"])
3
додано

Я зрештою використав це:

@if(employee["StartDate"].ToString() == ""){Start Date: Unknown.
} else{
@employee["StartDate"].
}

Але чи є "чистіше" спосіб написати це?

3
додано
Чи є співробітник ["StartDate"] DateTime? Я не бачу, як виклик ToString на DateTime може дати вам пустий рядок.
додано Автор D Stanley, джерело

Якщо startDate є DateTime , спробуйте порівняти його з DateTime.MinValue .

Якщо у вас є більше проблем, ви можете поставити точку зупину в коді бритви, щоб побачити, що саме таке поле

1
додано
@IyaTaisho ви мене неправильно зрозуміли. Тому що в питанні він писав, що він спробував null check, я впевнений, що значення не є нульовим
додано Автор Piotr Stapp, джерело
Але тип DateTime за замовчуванням не має нульового значення, якщо ви не призначите нічого, це буде MinValue
додано Автор Piotr Stapp, джерело
Або вони можуть використовувати DateTime? і просто перевірте на нуль. Навіщо робити більше для себе, щоб встановити StartDate до MinValue, якщо немає значення?
додано Автор IyaTaisho, джерело
Але це не обов'язково - MinValue ... Це може бути десь між значеннями min та max для цього питання, якщо це не було null. Отже, чому я кажу, було б набагато простіше, якби вони тільки що використовували DateTime? для початку і потім можна порівняти з нульовим значенням.
додано Автор IyaTaisho, джерело
... Якщо ви маєте тип DateTime? (це означає nullable) і встановити його нічого, ви отримаєте нульове значення ...
додано Автор IyaTaisho, джерело

Якщо startDate є DateTime , спробуйте порівняти його з DateTime.MinValue .

Якщо у вас є більше проблем, ви можете поставити точку зупину в коді бритви, щоб побачити, що саме таке поле

1
додано
@IyaTaisho ви мене неправильно зрозуміли. Тому що в питанні він писав, що він спробував null check, я впевнений, що значення не є нульовим
додано Автор Piotr Stapp, джерело
Але тип DateTime за замовчуванням не має нульового значення, якщо ви не призначите нічого, це буде MinValue
додано Автор Piotr Stapp, джерело
Або вони можуть використовувати DateTime? і просто перевірте на нуль. Навіщо робити більше для себе, щоб встановити StartDate до MinValue, якщо немає значення?
додано Автор IyaTaisho, джерело
Але це не обов'язково - MinValue ... Це може бути десь між значеннями min та max для цього питання, якщо це не було null. Отже, чому я кажу, було б набагато простіше, якби вони тільки що використовували DateTime? для початку і потім можна порівняти з нульовим значенням.
додано Автор IyaTaisho, джерело
... Якщо ви маєте тип DateTime? (це означає nullable) і встановити його нічого, ви отримаєте нульове значення ...
додано Автор IyaTaisho, джерело

Пробували, як показано нижче, я втомлюю подібну нульову перевірку, вона повинна працювати

@if(employee["StartDate"] != DateTime.MinValue){
  @employee["StartDate"].
} else{ Start Date: Unknown.
}
1
додано

Пробували, як показано нижче, я втомлюю подібну нульову перевірку, вона повинна працювати

@if(employee["StartDate"] != DateTime.MinValue){
  @employee["StartDate"].
} else{ Start Date: Unknown.
}
1
додано
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug