2016-08-01 6 views
0

これは日時に関するEPICの話です。作成したC#NullableとNull以外のDateTimeタグ

更新null非許容のDateTimeOffset変数 は、両方の可変

値が適切に作成されたヌル値を許可するのDateTimeOffsetであり、DBに存在し、ビューに渡されています。したがって、これらの値は両方とも次の範囲内で使用できるようにしてください:<div class="row">@Html.Label(Model.Created.Value.ToString("MMMM, dd yyyy hh:mm tt"))</div> <div class="row">@Html.Label(Model.Updated.Value.ToString("MMMM, dd yyyy hh:mm tt"))</div>

ただし、2番目(更新済み)は有効です。最初の(作成済み)はエラーを引きます: "ValueExtensions.Value(HtmlHelper、string)指定されたコンテキストでは無効です "

.value部分に発生します。 なぜ、1つは大丈夫ですか?変数のNULL可能性は、それが受け入れられることと何が関係していますか?メソッドを '指定されたコンテキストでは有効でない'ようにしますか?

マイモデル:

public BlogPost() 
    { 
     this.Comments = new HashSet<Comment>(); 
    } 

    public int Id { get; set; } 

    public DateTimeOffset Created { get; set; } 
    public DateTimeOffset? Updated { get; set; } 

    [Required()] 
    public string Title { get; set; } 
    public string Slug { get; set; } 
    [Required()] 
    [AllowHtml] 
    public string Body { get; set; } 
    public string MediaURL { get; set; } 
    public bool Published { get; set; } 

    public virtual ICollection<Comment> Comments { get; set; } 

答えて

4

のNullable型の値は.Valueにアクセスすることができます。

nullableでない型には.Valueが含まれていません。

Model.CreatedはNullableではないため、Model.Createdを呼び出すだけで値にアクセスできます。

Nullable Structures hereを読んでください。

0

2つのタイプミスがあります。まず、divとクラスの間に余分な>があり、2番目にヌルにできないオブジェクトにはValueプロパティがありません。

はこれを試してみてください:

<div class="row"> 
    @Html.Label(Model.Created.ToString("MMMM, dd yyyy hh:mmtt")) 
</div> 
+0

うーん、両方の部分に良いキャッチ。 '>'はどうやってそこに入ったのか分かりません。 –

関連する問題