ASP.NET MVC 3の新機能これは実際には簡単な問題だと思われますが、実際は私を困惑させてしまいました。私がしたいのは、値が入力されている場合は特定のDateTime値を表示し、値が入力されていない場合は空白のままにします。私の見解では、コードは単純に次のようになっています:ASP.NET MVCで表示する項目プロパティを条件付きで表示
<td>
@if (item.TimeReturned > DateTime.MinValue)
{
Html.DisplayFor(modelItem => item.TimeReturned);
}
</td>
これは本当に基本的で簡単なようです。また、それは過剰なようだが、モデルではTimeReturned
が明示的にデフォルトでDateTime.MinValue
になっている。
値は表示されません。オペレーターの不安がないことを確認するだけで、私も試しました。
<td>
@if (DateTime.Compare(item.TimeReturned,DateTime.MinValue) != 0)
{
Html.DisplayFor(modelItem => item.TimeReturned);
}
</td>
これも何も表示されません。私はいくつかの根本的な洞察を欠いているに違いない私はこれを達成するためにモデルクラスにメソッドを書くことができたと思いますが、このようにするのは直感的です。どんな指導も大歓迎です!
投稿TimeReturnedに移入されたコントローラのコードを次のようにあなたがそれを使用することができます。また、おそらくDateTime.MinValueの代わりにNullable DateTimeを使用する必要があります。その後、あなたはちょうどitem.TimeReturned!= nullを確認することができます – Dismissile
これは、C#datetimeの比較の問題のようで、asp.net mvc 3の問題ではないようです。 '@if(true){Html.DisplayFor(...);}'を設定していればうまくいきます。 –