繁体   English   中英

当我更改计算机日期格式并且无法检索日期选择器值时,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 ,在选择日期和提交时,该值有时可以由控制器端检索,有时却不能(如在调试和检查输入时,那里有值)。

此外,例如,当我的PC日期格式为dd/M/yyyy@Html.TextBoxFor(m => m.DateOfBirth)将显示其值,如果我的PC日期格式为M/dd/yyyy ,则它将为空。

添加一个jQuery日期选择器。 它将为您工作。

@ Html.TextBoxFor(model => model.date_of_birth,new {htmlAttributes = new {@class =“ m-wrap datepicker”,@ readonly =“ readonly”}})

您面临的问题是由于jQuery DatePicker和控制器之间的日期格式不同。 如果您不介意以与控制器相同的格式显示日期,则可以更改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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM