2017-07-10 9 views
-3

(ASP.NET MVC)は表示する日時、私は強いタイプの入力を持って

ここ

は、私はこれで、デフォルトでは、この入力でDateTime.Nowを表示しようとするコード

<input type="text" name="dateTime" value="@Model.DateTime"/> Date <br/>

ですコード

@{ DateTime dateTime = Model.DateTime.Year > 2000 ? Model.DateTime : DateTime.Now;}

しかし、それはない作品と私​​はこのエラーを持っている

enter image description here

入力にDateTime.Nowをどのように表示できますか?

Model.DateTime.Value.Year 

しかし、あなたはそれがnullとしてではないことを確認する必要があります:あなたは、実際の値のような、それのValueプロパティ経由でアクセスする必要があるので、NULL可能タイプですDateTime?持っ

+2

以下のように、あなたは2000年に比較することができヌルであるかどうかをチェックする必要があります。 DateTime.Value.Year。 – CodeCaster

+2

イメージではなく、常にコードを使用してください。 – Eldho

+0

C#6の機能を使用するには?、つまり@ {DateTime dateTime = Model.DateTime?.Year> 2000? Model.DateTime:DateTime.Now;} ' –

答えて

0

よく似ています:

if(Model.DateTime.HasValue) 

それ以外の場合、実行時に例外がスローされます。

次のようなものにそれをリファクタリングすることができます

@{ 
    DateTime dateTime = (Model.DateTime.HasValue && Model.DateTime.Value.Year > 2000) 
         ? Model.DateTime.Value 
         : DateTime.Now; 
} 

はそれが役に立てば幸い!

+0

はい、役立ちます。ありがとう! –

1

Model.DateTimenullableのタイプで、Model.DateTimeの値をdateTime変数に割り当てようとしているため、このエラーが発生しています。したがってnullnot-nullableタイプに割り当てることはできません。

あなたはそれはNULL可能です

@{ 
    DateTime dateTime = Model.DateTime.HasValue?(Model.DateTime.Value.Year > 2000 ? Model.DateTime.Value : DateTime.Now) : DateTime.Now; 
} 
関連する問題