【问题标题】:How to remove default 01/01/0001 in view in ASP.NET core?如何在 ASP.NET 核心视图中删除默认的 01/01/0001?
【发布时间】:2022-03-16 17:00:28
【问题描述】:

我有一个文本框字段需要允许用户选择日期,由于某种原因它显示为:

01/01/0001,

(甚至对于整数字段,它显示为 0)。

它允许一个日期选择器并且工作正常,但是我如何更改该默认值,有没有办法让它空白呢?

如何更改它以删除该默认值?

我尝试在我的 DbContext 中将我的数据模型中的属性设置为可为空。这似乎以前有效,但不确定我是否更改了某些内容并且它不再在文本框中显示为 MM/dd/yyyy。

型号:

[DataType(DataType.Date)]
public DateTime? Date { get; set; }

public int? Year { get; set; }

查看:

<input class="Date" asp-for="Date" type="date" />

<input class="Year" asp-for="Year" type="text" />

控制器:

public IActionResult ShowDate(string userName = null)
{
  var model = getModel.GetViewModel(userName);
  return View(model);
}

我希望将 mm/dd/yyyy 或类似的东西显示为占位符。

【问题讨论】:

  • 从 get 请求返回视图时是否传递了模型?
  • 请为返回视图的操作添加控制器逻辑。
  • DateTime? Dateint? Year 有什么问题,它显示正确的值 mm/dd/yyyy
  • @KristianneNerona 是的,我将视图模型传递给 View(),我将控制器添加到问题中。
  • @TaoZhou 问题是它在页面上没有正确显示,我没有收到mm/dd/yyyy

标签: c# asp.net-mvc asp.net-core razor


【解决方案1】:

这应该可行:

<input class="Date" asp-for="Date" type="date" value=0 />

万一它没有,你必须在你的控制器中确保它从评估中收到的是一个有效的日期;或确保该日期不早于您默认设置的任何特定日期,在这种情况下应返回 null 或“”,这样就可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 2018-12-06
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    相关资源
    最近更新 更多