【问题标题】:How to load in date into datepicker (ASP.NET MVC / C# / Razor) [duplicate]如何将日期加载到日期选择器(ASP.NET MVC / C# / Razor)[重复]
【发布时间】:2016-02-09 18:12:46
【问题描述】:

我正在尝试将 DateTime 值加载到 ASP.NET 的内置日期选择器中。我正在从另一个来源成功检索起息日,但日期显示不正确。它没有显示该值,例如 12/02/2015,而是错误地显示为 mm/dd/yyyy(输入任何日期之前的默认值)。我不认为问题出在控制器中,因为可以很好地检索到值。

澄清:问题是 DateTime 根本没有显示在视图中。它的字面意思是“mm/dd/yyyy”,而不是日期。问题不在于我需要不同方向的日期,例如 dd/mm/yyyy 或 yyyy/dd/mm。

模型的这一部分看起来像:

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
public DateTime? myDate { get; set; }

控制器的这一部分看起来像:

var a = dateFromDataBase; // string
model.myDate = string.IsNullOrEmpty(a.AnswerText) ? (DateTime?) null : Convert.ToDateTime(a.AnswerText); // model.myDate gets vaue, but displays as mm/dd/yyyy, converted to a DateTime value

视图的这一部分看起来像:

@Html.ValidationMessageFor(model => model.myDate)
@Html.EditorFor(model => model.myDate)

【问题讨论】:

  • 可能重复,或者您可以从以下帖子中获得答案:stackoverflow.com/a/12634470/1260204
  • 是的,这是重复的。谢谢您的帮助。这解决了我的问题。
  • 请注意,type="date" 仅在 Chrome 和 Edge 中受支持

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


【解决方案1】:

您能粘贴更多实际的控制器代码吗?

例如,a.AnswerText 来自哪里?

您是否设置了断点以确保您的 model.myDate 属性填充了实际的日期时间值?

如果变量“a”包含一个日期格式的字符串:

model.myDate = string.IsNullOrEmpty(a) ? null : DateTime.Parse(a);

您是否正确地将模型返回到视图中?

【讨论】:

  • 请查看我以粗体进行的编辑。问题不在于日期的方向,而是日期实际上没有显示。
猜你喜欢
  • 1970-01-01
  • 2010-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-09
  • 2014-08-14
  • 2020-03-17
相关资源
最近更新 更多