2

我目前正在使用 ASP.NET MVC 4 开发一个 Web 应用程序。这是我面临的问题的描述:

我创建了一个强类型视图来编辑表格的某些字段,尤其是一个DateTime字段。我想要做的是使用以下代码显示一个带有从数据库中检索的默认值的文本框:

@Html.TextBoxFor(m => m.Date, new { @Value = ViewBag.DefaultValue })

ViewBag.DefaultValue使用简单查询在控制器中设置位置。因为我在谈论日期,所以我也在我的 web.config 中添加了这个:

<globalization uiCulture="fr-Fr" culture="fr-FR" />

现在有趣的是,当显示日期时,日期的格式为 MM/DD/YYYY,而不是 DD/MM/YYYY 格式,后者是保存在数据库中的格式。此外,当我只想ViewBag.DefaultValue在 div 中显示时,它会显示正确的格式,即 DD/MM/YYYY。

有没有人遇到过类似的问题?我可以理解我的描述可能相当模糊,但我真的不明白那里发生了什么。

提前致谢。

4

2 回答 2

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")}

希望这能有所帮助。

于 2013-04-22T08:46:47.037 回答
0

我在 global.aspx.cs 中使用了类似的东西:

protected void Application_BeginRequest(object sender, EventArgs e)
{
    Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-us");
    Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-us");
}

以防止功能不使用正确的设置。

于 2013-04-19T14:40:39.633 回答