javascript - 为什么从模型获取值时我的引导日期选择器日历不更新?

原文 标签 javascript jquery asp.net-mvc asp.net-core

首次拉起 View 时(使用新的空模型),日期选择器效果很好。当我从模型中提取值到我的表单时,输入框中的文本看起来不错,但是当日历打开时,日期完全错误。如何解决这个问题?

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。单击文本框后,将显示日历,所选日期为当前日期(在本例中为 2020 年 3 月 25 日),当单击日历而不选择日期时,无论如何都会设置它。我希望引导日期选择器日历与文本框的值相同。 这是一个 GIF 来说明问题:

Calendar error

最佳答案

Datepicker 期望将默认值设置为今天。
如果您的脚本在 .cshtml页面,您可以简单地执行以下操作:

$("#startdatepicker").datepicker("setDate", new Date('@Model.StartDate'));
$("#enddatepicker").datepicker("setDate", new Date('@Model.EndDate'));

如果它在一个单独的文件中,请将您的日期绑定(bind)到一些 data-字段或使用 <input value="@Model.StartDate" hidden="hidden" type="text">然后通过 Jquery 将它们取回。

关于javascript - 为什么从模型获取值时我的引导日期选择器日历不更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60861154/

相关文章:

javascript - Safari/Opera 中的 Canvas 渲染问题

javascript - $变量和javascript/jquery问题

c# - 从 APIController 操作重定向到其他 MVC Controller 操作

javascript - 如何在单选按钮中创建条件? (在jQuery Ajax中)

php - 将 PHP 插入外部 .js 文件

javascript - 在JS中使用两个日期获取日期

javascript - 为什么圆圈在碰撞时振动( Canvas )

javascript - setTimeout(fn,0)和setTimeout(fn,1)有什么区别?

c# - DataAnnotation 属性好友类的奇怪之处 - ASP.NET MVC

c# - 尝试保存实体时 ModelState.isvalid 为 false,错误表示相关实体中需要字段