MVC Core Viewでは、空でない場合は作成日ではなく修正日を表示しようとしています。MVC Razor View - 空でない場合は、作成日の代わりに変更日を表示します。
だから、私は次のよう
@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
だから、その代わりに、私は次のようにそれを変更し、それが動作することを言ってエラーを得ました。
ただし、モデル宣言で既に行った日付の書式を再指定する必要があるという問題があります。そうでない場合は、DisplayForをもう使用しないため、データはdd/MM/yyyy HH:mm:ss形式で表示されます。
もう1つの可能性は、ViewModelを使用して、この種の特殊テキストを処理するための新しいプロパティを追加できることです。
このようなシナリオを処理するより良い方法があるかどうか分かりますか?
をフォーマットすることができます。 –
ビューモデルは常にベストですが、常に@if(item.DateModified.HasValue){@ Html.DisplayFor(m => item.DateModified)} else {@ Html.DisplayFor(m => item.DateCreated )} ' –
ビューにロジックを置くのではなく、モデルでヘルパープロパティを使用する方が良いでしょう。 – peval27