C#可空与不可空的日期时间标记

C#可空与不可空的日期时间标记,c#,datetime,nullable,datetimeoffset,non-nullable,C#,Datetime,Nullable,Datetimeoffset,Non Nullable,这是一个关于日期和时间的史诗故事 创建的是不可为空的DateTimeOffset变量 Updated是一个可为空的DateTimeOffset变量 两者的值都已正确创建、存在于数据库中并已传递给视图。因此,这两个值都应该在以下范围内可用:@Html.Label(Model.Created.Value.ToString(“MMMM,dd-yyyy hh:mm-tt”)) @Html.Label(Model.Updated.Value.ToString(“mm,dd yyyy hh:mm tt”))

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

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

两者的值都已正确创建、存在于数据库中并已传递给视图。因此,这两个值都应该在以下范围内可用:
@Html.Label(Model.Created.Value.ToString(“MMMM,dd-yyyy hh:mm-tt”))
@Html.Label(Model.Updated.Value.ToString(“mm,dd yyyy hh:mm tt”))

但是,第二个(已更新)很好,第一个(已创建)出现错误:“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; }
publicblogpost()
{
this.Comments=newhashset();
}
公共int Id{get;set;}
已创建公共DateTimeOffset{get;set;}
公共日期时间偏移?已更新{get;set;}
[必需()]
公共字符串标题{get;set;}
公共字符串Slug{get;set;}
[必需()]
[allowtml]
公共字符串体{get;set;}
公共字符串MediaURL{get;set;}
公共bool已发布{get;set;}
公共虚拟ICollection注释{get;set;}

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

不可为空的类型没有
.Value

由于
Model.Created
不可为空,因此只需调用
Model.Created
即可访问其值


阅读可空结构。

可空类型值可通过
.Value
访问

不可为空的类型没有
.Value

由于
Model.Created
不可为空,因此只需调用
Model.Created
即可访问其值


请仔细阅读可空结构。

您有两个打字错误。首先,div和类之间的额外>,其次,不可为null的对象没有Value属性

试试这个:

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

@Label(Model.Created.ToString(“MMMM,dd-yyyy hh:mmtt”))

您有两个打字错误。首先,div和类之间的额外>,其次,不可为null的对象没有Value属性

试试这个:

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

@Label(Model.Created.ToString(“MMMM,dd-yyyy hh:mmtt”))

Hmm,两部分都很好。不知道“>”是怎么进去的。嗯,两部分都很好。不知道“>”是怎么进去的。