0

这是一个关于日期和时间的史诗故事。

Created 是一个不可为空的 DateTimeOffset 变量 Updated 是一个可为空的 DateTimeOffset 变量

两者的值都已正确创建,存在于数据库中并已传递给视图。因此,这两个值都应该在以下范围内可用:<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>

然而,第二个(更新)是好的,第一个(创建)会出现错误:“ValueExtensions.Value(HtmlHelper,string)'是一种方法,在给定的上下文中无效”

它发生在 .value 部分。为什么一个可以,另一个不行?变量的可空性与可接受性有什么关系?或使该方法“在给定的上下文中无效”?

我的模型:

 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

可以使用 访问可空类型值.Value

不可为空的类型没有.Value.

由于Model.Created它不是 Nullable,因此您只需通过调用来访问它的值Model.Created

在此处阅读可空结构。

于 2016-08-01T03:53:11.730 回答
0

你有两个错字。首先是 div 和 class 之间的额外 >,其次不可为空的对象没有 Value 属性。

尝试这个:

<div class="row">
  @Html.Label(Model.Created.ToString("MMMM, dd yyyy  hh:mmtt"))
</div>
于 2016-08-01T03:55:18.023 回答