gpt4 book ai didi

c# - 当我更改计算机日期格式并且无法检索日期选择器值时,ASP.NET MVC Core DateTime 表现得很奇怪

转载 作者:行者123 更新时间:2023-12-01 08:39:59 25 4
gpt4 key购买 nike

每当我将 PC 日期格式从 dd/M/yyyy 更改为 M/dd/yyyy 时,我的 MVC Core 就会表现得很奇怪

奇怪的是,在我的@Html.TextBoxFor(即DatePicker)中,选择日期并提交时, Controller 端有时可以检索该值,有时则不能(如在调试和检查输入时,那里是有值(value)的)。

此外,例如,当我的电脑日期格式为dd/M/yyyy时,@Html.TextBoxFor(m => m.DateOfBirth)将显示其值,如果我的电脑日期格式是M/dd/yyyy

,它将为空

最佳答案

您面临的问题是由于 jQuery DatePicker 和 Controller 之间的日期格式差异造成的。如果您不介意以与 Controller 相同的格式显示日期,则可以更改 DatePicker 日期格式。

或者,您可以使用 DatePickeraltField 功能来提供替代格式。您需要隐藏 DateOfBirth 并添加另一个 HTML 文本框来显示 DatePicker。当用户选择日期时,altField 功能将自动使用您指定格式的所选日期更新您的 DateOfBirth。最后,如果您想初始化模型中的值,请使用 setDate 方法。

这是一个例子:

@Html.TextBoxFor(m => m.DateOfBirth, new { style = "visibility: hidden; width: 0; height: 0;" })
<input type="text" id="DateOfBirthDisplay" readonly="readonly" />
<script>
$(function() {
$("#DateOfBirthDisplay").datepicker({
dateFormat: "d M yy", //The format that you want for the display
altFormat: "yy-mm-dd", //The format accepted by your controller
altField: "#@Html.IdFor(m => m.DateOfBirth)"
}).datepicker("setDate", "new Date(" + Model.DateOfBirth.ToString("yyyy, M-1, d") + ")");
});
</script>

关于c# - 当我更改计算机日期格式并且无法检索日期选择器值时,ASP.NET MVC Core DateTime 表现得很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48628411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com