0

これは日付と時刻に関する壮大な物語です。

Created は null 非許容の DateTimeOffset 変数です Updated は null 許容の 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 番目 (更新済み) は問題なく、最初 (作成済み) はエラーを引き出します。

.value 部分で発生します。なぜ一方は大丈夫で、もう一方は大丈夫ではないのですか?変数の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

2 に答える 2

4

Null 許容型の値には、 でアクセスできます.Value

null 非許容型には がありません.Value

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

Nullable 構造については、こちらを参照してください。

于 2016-08-01T03:53:11.730 に答える