@ Html.EditorFor, чтобы видеть, чтобы кэшировать старые данные и не в состоянии показать средство выбора даты - PullRequest
0 голосов
/ 26 июня 2018

У меня есть эта "маленькая" проблема. Я создал проект MVC, где мне нужно зарегистрировать пользователя, с другим полем. (Я покажу вам только часть.) Одна конкретная область, дает мне проблему: В поле DateOfBirth , где я реализовал средство выбора даты для jquery

Когда я нажимаю на ярлык EditorFor : enter image description here

Сначала я получил все старые данные, которые я записал на пленку, и мой календарь уже позади, поэтому я не могу выбрать дату: enter image description here

Есть ли способ заставить кеш исчезнуть и иметь только календарь?

@model WebApplication2.Models.Person

@{
    ViewBag.Title = "Create";
}

<h2>Create</h2>


@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()

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

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

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

        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Create" class="btn btn-default" />
            </div>
        </div>
    </div>
}

<div>
    @Html.ActionLink("Back to List", "ListPerson")
</div>

<link href="~/Content/themes/base/jquery-ui.min.css" rel="stylesheet" />

@section Scripts {
    <script src="~/Scripts/jquery-ui-1.12.1.min.js"></script>
    @Scripts.Render("~/bundles/jqueryval")

    <script>
        $(function() {
            $(".datepicker").datepicker(
                {
                    dateFormat: "yy/mm/dd",
                    changeMonth: true,
                    changeYear : true
                });
        });
    </script>
}

Сначала я подумал, что это просто кеш браузера, и я тестировал на многих (IE11, Mozilla, Chrome), и я очистил кеш, но, похоже, хранит дату в кеше приложения. Вы знаете, в чем может быть причина?

С уважением.

1 Ответ

0 голосов
/ 26 июня 2018

Попробуйте добавить атрибут autocomplete = "off" - Стивен Мюке

@Html.EditorFor(model => model.DateOfBirth, new { htmlAttributes = new { @class = "form-control", autocomplete = "off" } })

И это работает:)

...