close
常常會遇到一個問題,當塞資料到一個資料表欄位格式為日期,卻沒有給予任何資料(Null)時,
model.ListingDate = formdata.ListingDate; //(傳入null)
會發生這個例外Exception
SqlDateTime 溢位。必須在 1/1/1753 12:00:00
AM 和 12/31/9999 11:59:59 PM 之間
而讚取一個日期欄位為Null,View裡面
使用ToString("yyyy/MM/dd")會顯示成0001/01/01,
Ex : @model.ListingDate.ToString("yyyy/MM/dd")
解決方法是在Model設計中要明確宣告這個struct允許是null
public DateTime ? ListingDate { get; set; }
這樣在讀取與寫入時,就不會出現以上的窘境
ps︰
雖然View中的顯示會自動呈現空字串
例如 <td>@uwc.ListingDate.ToString("yyyy/MM/dd")</td>
不過建議還是先使用HasValue來檢查
model.ListingDate.HasValue ? model.ListingDate.Value.ToString("yyyy/MM/dd") : "NoDate";
全站熱搜
留言列表