[英]DateTime User Claim, format date as string (Asp.Net MVC 5)
[英]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
日期格式。
另外,您可以使用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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.