这是关于日期和时间的EPIC故事。
Created是一个不可为空的DateTimeOffset变量 更新是可以为空的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>
然而,第二个(更新)是有用的,第一个(Created)引发错误:“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; }
答案 0 :(得分:4)
可以使用.Value
访问可为空的类型值。
非可空类型没有.Value
。
由于Model.Created
不是Nullable,您只需拨打Model.Created
即可访问其值。
阅读Nullable Structures this.unblock()
。
答案 1 :(得分:0)
你有两个拼写错误。首先,额外的&gt;在div和class之间,其次是不可为空的对象没有Value属性。
试试这个:
<div class="row">
@Html.Label(Model.Created.ToString("MMMM, dd yyyy hh:mmtt"))
</div>