Razor Pages 在页面加载时设置当前日期

Posted

技术标签:

【中文标题】Razor Pages 在页面加载时设置当前日期【英文标题】:Razor Pages set current date on page load 【发布时间】:2021-02-06 15:04:08 【问题描述】:

我是 razor 和 .net 的新手,我在 ASP Net Razor 项目上有一个页面,我在其中弹出一个带有表单的模式。表单内部有一个日期选择器,我想在页面加载时设置系统日期并均匀地保持可编辑。 我已经试过了

@ string dateNow = DateTime.Now.ToString("dd MM yyyy"); <input asp-for="intervento.Data" class="form-control" type="date" value="@dateNow" />

它检索到正确的日期,但无法显示它。我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

您的日期应采用以下格式yyyy-MM-dd

所以它看起来像这样:

<input type="date" value="2020-10-23">

【讨论】:

它成功了,谢谢,我用这个“yyyy-MM-dd”而不是“dd MM yyyy”设置了ToString【参考方案2】:

大概,Intervento.Data 是您的 PageModel 的 DateTime 属性?如果是这样,你应该添加一个DataType 属性来指定它代表一个日期,而不是一个时间:

[DataType(DataType.Date)]
public DateTime Data  get; set; 

那么您不需要在输入中指定type。标签助手将根据属性生成正确的值。此外,如果您在属性上设置默认值:

[DataType(DataType.Date)]
public DateTime Data  get; set;  = DateTime.Now;

您也不需要设置输入的值。 ASP.NET 将负责将值正确格式化为输入可以使用的 ISO 8601 格式。所以以下就足够了:

<input asp-for="intervento.Data" class="form-control" />

【讨论】:

以上是关于Razor Pages 在页面加载时设置当前日期的主要内容,如果未能解决你的问题,请参考以下文章

Asp.net core razor pages 加载部分页面

如何从 Razor Pages 应用程序中的插件动态加载页面?

当其他输入验证验证失败时,Razor Pages textarea 输入只会增长和增长

Razor Pages .NetCore OnPost 处理程序

如何在asp.net core razor pages 2.2中设置日期格式和文化

Razor Pages 不使用它的布局