[首先拉起视图时(使用新的空模型),日期选择器非常有用。当我从模型中将值拉到表单中时,输入框中的文本看起来不错,但是当日历打开时,日期是完全错误的。如何解决?
Controller
public IActionResult Daily(Daily? daily)
{
new ReportDaily().GetAvailableSavedCriteria(out List<ReportCriteria> reportCriteria, out Notification not);
if (daily.SelectedCriteria == null) {
//Create daily report object and initialize the default values
var newModel = new Daily
{
PaymentTypes = DGetPaymentTypes(),
Users = DGetUsers(),
Criteria = reportCriteria,
StartDate = DateTime.Today.Date,
EndDate = DateTime.Today.Date,
County = true,
Municipality = true
};
return View(newModel);
}
else
{
daily.PaymentTypes = HttpContext.Session.GetString("PaymentTypes") == null ? DGetPaymentTypes() : JsonConvert.DeserializeObject<List<Daily.PaymentType>>(HttpContext.Session.GetString("PaymentTypes"));
daily.Users = HttpContext.Session.GetString("Users") == null ? DGetUsers() : JsonConvert.DeserializeObject<List<Daily.User>>(HttpContext.Session.GetString("Users"));
daily.Criteria = reportCriteria;
return View("Daily", daily);
}
}
查看
<div class="row col-12 formdatepicker">
<input asp-for="StartDate" type="text" class="form-control" id="startdatepicker" />
<span style="margin-left: 8px; margin-right: 8px; padding-top: 5px;">to</span>
<input asp-for="EndDate" type="text" class="form-control" id="enddatepicker" />
</div>
JavaScript
$("#startdatepicker").datepicker();
$("#enddatepicker").datepicker();
文本框中的值最初设置为03/10/2020。在文本框中单击后,将以所选日期为当前日期(在本例中为03/25/2020)显示日历,并且从日历中单击而不选择日期时,无论如何都会对其进行设置。我希望引导日期选择器日历与文本框具有相同的值。 这里是一个GIF来说明问题:
Datepicker希望将默认值设置为今天。如果您的脚本位于.cshtml
页面上,则只需执行以下操作:
$("#startdatepicker").datepicker("setDate", new Date('@Model.StartDate'));
$("#enddatepicker").datepicker("setDate", new Date('@Model.EndDate'));
如果在单独的文件中,则将您的日期绑定到某些data-
字段,或使用<input value="@Model.StartDate" hidden="hidden" type="text">
,然后通过Jquery取回它们。