[英]Format MVC default Date (01/01/0001) to be empty
我的 Razor 表單代碼
<div class="form-group">
@Html.LabelFor(model => model.achPayDate, htmlAttributes: new { @class = "control-label col-md-7" })
@Html.DisplayFor(model => model.achPayDate, new {@class="date"})
</div>
我的 cs 代碼
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
public DateTime? achPayDate { get; set; }
當 achPayDate=0001-01-01T00:00:00 時顯示 01/01/0001 ,我想將日期抑制為空白。 我怎樣才能做到這一點??
您可以執行以下操作
DisplayTemplates
DisplayTemplates
文件夾下創建新視圖並將其Date.cshtml
Date.cshtml的代碼
@model DateTime?
@if(Model!=null && Model!=DateTime.MinValue)
{
@string.Format("{0:MM/dd/yyyy}",Model)
}
你的模型代碼
[DataType(DataType.Date)]
public DateTime? achPayDate { get; set; }
這種方式將使所有帶有數據注釋的 DateTime [DataType(DataType.Date)]
遵循相同的行為,您也可以對EditorTemplates
執行相同的操作
您可以在此處獲取有關EditorTemplates
和DisplayTemplates
更多信息
希望能幫到你
對於普通的 DateTimes,如果你根本不初始化它們,那么它們將匹配 DateTime.MinValue,因為它是一個值類型而不是一個引用類型。
您還可以使用可為空的 DateTime,如下所示:
DateTime? MyNullableDate;
或者更長的形式:
Nullable<DateTime> MyNullableDate;
或使用:
private DateTime? _achPayDate = null;
public DateTime? achPayDate { get {return _achPayDate ; } set{_achPayDate = value;} }
我將 1900-01-01 作為“空”日期並以這種方式抑制它:Date.cshtml(在 DisplayTemplates 中):
@model DateTime?
@if (Model != null && Model == DateTime.Parse("1900-01-01 00:00:00"))
{
Html.Raw(" ");
}
@if (Model != null && Model != DateTime.Parse("1900-01-01 00:00:00"))
{
@string.Format("{0:yyyy-MM-dd hh:mm:ss}",Model)
}
我在視圖中使用它的模板名稱“日期”:
@Html.DisplayFor(modelItem => item.m.CarrierArrival,"Date")
我在網絡網格列中添加如下
grid.Column("Note Date",
style: "width:159px",
format: @<text>
@if (item.NoteDate == DateTime.MinValue)
{
}
else
{
@string.Format("{0:MM/dd/yyyy}", item.NoteDate)
}
</text>)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.