在MVC核心視圖中,我試圖顯示修改日期而不是創建日期,如果它不爲空。MVC剃刀視圖 - 顯示修改日期而不是創建日期(如果它不爲空)
所以,我寫像下面
@Html.DisplayFor(modelItem => (item.DateModified.HasValue ? item.DateModified : item.DateCreated))
,但得到一個錯誤,指出
Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions
因此,而不是說我把它改成下面和它的作品。
@(item.DateModified.HasValue ? item.DateModified.Value.ToString("dd/MM/yyyy") : item.DateCreated.ToString("dd/MM/yyyy"))
但是,問題是我必須重新指定我在模型聲明中已經完成的日期格式。如果不是,則顯示dd/MM/yyyy HH:mm:ss格式的數據,因爲我不再使用DisplayFor。
另一種可能性是我可以使用ViewModel並添加一個新屬性來處理這種特殊文本。
我可以知道是否有更好的方法來處理這種情況?
你所提出的建議是處理最好的辦法視圖模型可能性。 –
視圖模型總是最好的,但你總是可以使用@if(item.DateModified.HasValue){@ Html.DisplayFor(m => item.DateModified)} else {@ Html.DisplayFor(m => item.DateCreated )}' –
在模型中使用helper屬性似乎更好,而不是將邏輯放在View中。 – peval27