【问题标题】:default value or value from the model for datepickerdatepicker 模型的默认值或值
【发布时间】:2020-07-22 06:06:12
【问题描述】:

我使用 datepicker 实现了一个日历,但我无法将当前日期分配给字段以将条目添加到数据库中,也无法分配现有模型中的日期以进行编辑。

型号

[Required]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)]
[Display(Name = "Дата")]

创建动作

ViewBag.date = DateTime.Today;
var model = new Expense();
model.Date = DateTime.Today;
//
return View(model);

在我看来,我有 js:

<script type="text/javascript">
    $(function () {
        $("input[type='date']")
            .datepicker({ dateFormat: 'dd.mm.yy' })
            .get(0).setAttribute("type", "text");
        $.datepicker.regional['ru'] = {
            prevText: 'Пред',
            nextText: 'След',
            monthNames: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь',
                'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
            monthNamesShort: ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн',
                'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],
            dayNames: ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'],
            dayNamesShort: ['вск', 'пнд', 'втр', 'срд', 'чтв', 'птн', 'сбт'],
            dayNamesMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],
            weekHeader: 'Не',
            dateFormat: 'dd.mm.yy',
            firstDay: 1,
            isRTL: false,
            showMonthAfterYear: false,
            yearSuffix: '',

        };
        $.datepicker.setDefaults($.datepicker.regional['ru']);
        $.validator.addMethod('date',
            function (value, element) {
                var ok = true;
                try {
                    $.datepicker.parseDate('dd.mm.yy', value);
                }
                catch (err) {
                    ok = false;
                }
                return ok;
            });
    });
</script>

在布局中我有 js:

<script type="text/javascript">
    $(function () {
        if (!Modernizr.inputtypes.date) {
            $(function () {
                $("input[type='date']")
                    .datepicker({ dateFormat: 'dd.mm.yy' })
                    .get(0).setAttribute("type", "text");
            })
        }
    });
</script>

还有 html 助手

<div class="form-group">
        @Html.LabelFor(model => model.Date, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.Date, new { htmlAttributes = new { @class = "form-control"} })
            @Html.ValidationMessageFor(model => model.Date, "", new { @class = "text-danger" })
        </div>
</div>

当我使用此操作时,dd.mm.yyyy 会在日期字段中出现一毫秒,然后变得清晰。今天没有日期。 对不起我的英语,谢谢你的帮助 更新: 在 explorer 和 firefox 中一切正常,但在 chrome 和 opera 中却不行。我认为这与他们的标准日历有关。

【问题讨论】:

    标签: asp.net asp.net-mvc model-view-controller datepicker


    【解决方案1】:
    @Html.EditorFor(model => model.Date, new { htmlAttributes = new { @class = "form-control", @Value = ViewBag.date} })
    

    【讨论】:

    • 欢迎来到 Stack Overflow!虽然这段代码可以解决问题,including an explanation 解决问题的方式和原因确实有助于提高帖子的质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人。请edit您的回答添加解释并说明适用的限制和假设。
    • 不幸的是,这没有意义,我已经从控制器传递了带有日期值的模型。想必问题出在js或者style上。
    猜你喜欢
    • 1970-01-01
    • 2018-05-08
    • 2016-10-28
    • 2017-09-13
    • 2015-12-31
    • 2018-10-22
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    相关资源
    最近更新 更多