我目前正在使用ASP.NET MVC 4开发Web应用程序。以下是我所面临的问题的描述:
我创建了一个强类型视图,以便编辑表格的某些字段,特别是DateTime
字段。我想要做的是使用以下代码显示一个文本框,其中包含从数据库中检索到的默认值:
@Html.TextBoxFor(m => m.Date, new { @Value = ViewBag.DefaultValue })
使用简单查询在Controller中设置ViewBag.DefaultValue
。由于我在谈论日期,我也在我的web.config中添加了这个:
<globalization uiCulture="fr-Fr" culture="fr-FR" />
现在有趣的部分是,当显示时,日期具有MM / DD / YYYY格式而不是DD / MM / YYYY格式,这是保存在数据库中的格式。此外,当我只想在div中显示ViewBag.DefaultValue
时,它会显示正确的格式,即DD / MM / YYYY。
有没有人遇到过类似的问题?我可以理解我的描述可能相当模糊,但我真的不明白那里发生了什么。
提前致谢。
答案 0 :(得分:1)
我尝试过,但没有任何成功。
经过一段时间的检查,我终于在那里找到了一个解决方案:http://geekswithblogs.net/80n/archive/2012/04/27/apply-a-datetime-format-in-an-asp.net-mvc-textboxfor.aspx
使用EditorFor和数据注释无法正常工作,因为我需要将此标记链接到datepicker事件。所以我使用了第二种解决方案。
技巧包括在传递值时强制格式:
@Html.TextBoxFor( m => m.Date, new {@Value = Model.Date.ToString("dd/MM/yyyy")}
希望这可以提供帮助。
答案 1 :(得分:0)
我在global.asax.cs中使用类似的东西:
protected void Application_BeginRequest(object sender, EventArgs e)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-us");
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-us");
}
以防止功能未使用正确的设置。