C#可空与不可空的日期时间标记
这是一个关于日期和时间的史诗故事 创建的是不可为空的DateTimeOffset变量 Updated是一个可为空的DateTimeOffset变量 两者的值都已正确创建、存在于数据库中并已传递给视图。因此,这两个值都应该在以下范围内可用: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”))
@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,两部分都很好。不知道“>”是怎么进去的。嗯,两部分都很好。不知道“>”是怎么进去的。