.net textbox用于对其默认日期时间值格式进行不必要的修改

.net textbox用于对其默认日期时间值格式进行不必要的修改,.net,asp.net-mvc,.net,Asp.net Mvc,我目前正在使用ASP.NETMVC4开发一个web应用程序。以下是我所面临问题的描述: 我创建了一个强类型视图,以便编辑表的一些字段,尤其是DateTime字段。我要做的是显示一个文本框,其中包含使用以下代码从数据库检索到的默认值: @Html.TextBoxFor(m => m.Date, new { @Value = ViewBag.DefaultValue }) 其中ViewBag.DefaultValue在控制器中使用简单查询进行设置。因为我谈论的是日期,所以我也在我的web.c

我目前正在使用ASP.NETMVC4开发一个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。此外,当我只想在div中显示
ViewBag.DefaultValue
时,它会显示正确的格式,即DD/MM/YYYY

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


提前感谢。

我在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");
}

防止函数使用不正确的设置。

我尝试过,但没有成功

经过一段时间的检查,我终于找到了解决方案:

使用EditorFor和数据批注无法工作,因为我需要将此标记链接到datepicker事件。所以我使用了第二种解决方案

诀窍在于传递值时强制使用格式:
@Html.TextBoxFor(m=>m.Date,新的{@Value=Model.Date.ToString(“dd/MM/yyyy”)}


希望这能有所帮助。

我尝试过,但没有成功。经过一段时间的检查,我终于找到了一个解决方案:诀窍在于在传递值时强制使用格式:
@Html.TextBoxFor(m=>m.Date,new{@value=Model.Date.ToString(“dd/MM/yyyy”)}
希望这能有所帮助。