亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在ASP.NET MVC 3中以特定格式呈現DateTime?

如何在ASP.NET MVC 3中以特定格式呈現DateTime?

胡子哥哥 2019-11-26 15:31:29
如果我在模型類中有一個類型的屬性,DateTime該如何以特定格式呈現它(例如,以ToLongDateString()返回格式)?我已經嘗試過了[email protected](modelItem => item.MyDateTime.ToLongDateString())...這將引發異常,因為表達式必須指向屬性或字段。和這個...@{var val = item.MyDateTime.ToLongDateString();  Html.DisplayFor(modelItem => val);}...這不會引發異常,但是呈現的輸出為空(盡管val包含預期值,如我在調試器中看到的)。提前感謝您的提示!編輯ToLongDateString僅是一個例子。我實際上想要使用的ToLongDateString是DateTimeand 的自定義擴展方法DateTime?:public static string FormatDateTimeHideMidNight(this DateTime dateTime){    if (dateTime.TimeOfDay == TimeSpan.Zero)        return dateTime.ToString("d");    else        return dateTime.ToString("g");}public static string FormatDateTimeHideMidNight(this DateTime? dateTime){    if (dateTime.HasValue)        return dateTime.Value.FormatDateTimeHideMidNight();    else        return "";}因此,我認為我無法在ViewModel屬性上使用DisplayFormat屬性和DataFormatString參數。
查看完整描述

3 回答

?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

如果所有DateTime類型的呈現方式都相同,則可以使用自定義DateTime顯示模板。


在您的Views文件夾中,在控制器特定的views文件夾下或“ Shared”文件夾下創建一個名為“ DisplayTemplates”的文件夾(這些工作類似于局部文件)。


里面創建一個名為文件DateTime.cshtml是需要DateTime為@model您想如何使您的日期代碼:


@model System.DateTime

@Model.ToLongDateString()

現在,您可以在視圖中使用它,它應該可以工作:


@Html.DisplayFor(mod => mod.MyDateTime)

只要您遵循將其添加到“ DisplayTemplates”文件夾并命名該文件以匹配要顯示的類型的約定,MVC就會自動使用該文件來顯示您的值。這也適用于使用“ EditorTemplates”編輯方案。


查看完整回答
反對 回復 2019-11-26
  • 3 回答
  • 0 關注
  • 669 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號