данные, передаваемые из поля зрения, не сохраняются после обратной отправки - PullRequest
0 голосов
/ 11 февраля 2019

Я не могу найти решение для этого, так как считаю, что это ошибка, или, может быть, я не вижу того, что должен иметь.

Я передаю модель из контролируемой в режим просмотра как строго типизированных данных,Тем не менее, только один параметр содержит ошибки, он очищает свои данные после постбэка. enter image description here Когда я нажимаю Поиск .. enter image description here Здесь вы можете увидеть дату из ЗакрытоВремя все еще там, но текст из отрезанного времени ушел.Дата, которую вы видите в конце, является значением @Model.CutOffTimeFrom - @Model.CutOffTimeTo, чтобы увидеть, были ли данные очищены или удалены, но это не так, это просто отображение в EditorFor.

Я тоже пробовал это один , с использованием тега <input>, но это все тот же вывод.

Ниже моя модель:

[AssertThat("CutOffTimeFrom <= CutOffTimeTo", ErrorMessage = "Date To should be greater than Date From")]
    [RequiredIf("CutOffTimeFrom != null", ErrorMessage = "Date From is required")]
    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime? CutOffTimeFrom { get; set; }

    [RequiredIf("CutOffTimeTo != null", ErrorMessage = "Cut Off Time From is required")]
    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime? CutOffTimeTo { get; set; }

, а вот вид:

<div>
     @*<input type="date" name="CutOffTimeFrom" value="@Model.CutOffTimeFrom" class="form-control input-sm" />-<input type="date" name="CutOffTimeTo" value="@Model.CutOffTimeTo" class="form-control input-sm" />*@
     @Html.EditorFor(m => m.CutOffTimeFrom, new { htmlAttributes = new { @class = "form-control input-sm" } }) - @Html.EditorFor(m => m.CutOffTimeTo, new { htmlAttributes = new { @class = "form-control input-sm" } })
     @Html.ValidationMessageFor(model => model.CutOffTimeFrom, "", new { @class = "text-danger" })
     @Html.ValidationMessageFor(model => model.CutOffTimeTo, "", new { @class = "text-danger" })
</div>

Все остальные поля работают просто отлично.Только время отключения очищается, хотя оно удовлетворяет критериям поиска, значение по-прежнему передается в модель, но оно просто не отображается в представлении.

Кто-нибудь сталкивался с этой проблемой?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Я тщательно проверил различия каждого элемента, свойства, параметра и увидел одно отличие - формат даты.Увидел ошибку при проверке проверяющего элемента каждого EditorFor и увидел, что это были разные даты, 2019/02/08 и 02/08/2019, где последний неверен.

Изменил его с:

[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]

To:

[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]

Возможно, [DataType(DataType.Date)] не может отобразить 02/08/2019, поэтому не заполняет форму.

0 голосов
/ 11 февраля 2019

Можем ли мы увидеть, как Контроллер обрабатывает это, потому что может случиться так, что это не привязка к модели

...