如何在不破坏 C# 模板的情况下拥有可选的 date/time 选择器?

How can I have optional date/time pickers without breaking the C# template?

我的内容类型有一个 "Start Date and Time" 字段,它是一个 Date/Time 选择器。然后在我的 C# 模板中,我有格式化的日期和时间:

@Content.StartDateTime.ToString("h:mm tt")

如果该字段是可选的并且用户没有填写,模块将抛出错误。为了解决这个问题,我必须使 Date/Time 选择器成为必需的,然后使用演示设置切换来确定它是否显示。我还预先填写了一个日期字段。这没关系,但理想情况下我想有时将 date/time 字段保留为可选。

是否有不同的方法来编写 C# 代码来处理空字段?

在“普通”C# 中,您可以执行此操作(但它在 DNN 中使用的 Razor 中不起作用,它支持较旧的 C# 版本:

@(Content.StartDateTime?.ToString("h:mm tt"))

所以在 Razor 中大约是。这 :

@(Content.StartDateTime != null ? Content.StartDateTime.ToString("h:mm tt") : "")

另请参阅:https://2sxc.org/dnn-tutorials/en/razor/basics210/page