ASP.NET 当我更改我的计算机日期格式并且无法检索日期选择器值时,MVC Core DateTime 表现得很奇怪
ASP.NET MVC Core DateTime acting weird when I change my Computer Date format and cannot retrieve datepicker value
每当我将 PC 日期格式从 dd/M/yyyy
更改为 M/dd/yyyy
时,我的 MVC Core 会表现得很奇怪
我@Html.TextBoxFor
中的怪异,即DatePicker
,选择日期并提交时,有时可以由控制器侧检索该值,那里有价值)。
此外,例如 @Html.TextBoxFor(m => m.DateOfBirth)
当我的 PC 日期格式是 dd/M/yyyy
时,它会显示它的值,如果我的 PC 日期格式是 M/dd/yyyy
[=18,它会是空的=]
添加 jQuery 日期选择器。它会为你工作。
@Html.TextBoxFor(model => model.date_of_birth, new { htmlAttributes = new { @class ="m-wrap datepicker", @readonly="readonly" } } )
您遇到的问题是由于 jQuery DatePicker
和控制器之间的日期格式不同造成的。如果您不介意以与控制器相同的格式显示日期,您可以更改 DatePicker
日期格式。
或者,您可以使用 DatePicker
的 altField
功能来提供替代格式。您需要隐藏 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>
每当我将 PC 日期格式从 dd/M/yyyy
更改为 M/dd/yyyy
我@Html.TextBoxFor
中的怪异,即DatePicker
,选择日期并提交时,有时可以由控制器侧检索该值,那里有价值)。
此外,例如 @Html.TextBoxFor(m => m.DateOfBirth)
当我的 PC 日期格式是 dd/M/yyyy
时,它会显示它的值,如果我的 PC 日期格式是 M/dd/yyyy
[=18,它会是空的=]
添加 jQuery 日期选择器。它会为你工作。
@Html.TextBoxFor(model => model.date_of_birth, new { htmlAttributes = new { @class ="m-wrap datepicker", @readonly="readonly" } } )
您遇到的问题是由于 jQuery DatePicker
和控制器之间的日期格式不同造成的。如果您不介意以与控制器相同的格式显示日期,您可以更改 DatePicker
日期格式。
或者,您可以使用 DatePicker
的 altField
功能来提供替代格式。您需要隐藏 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>