Можно ли использовать настраиваемый атрибут проверки на модальном экране? - PullRequest
0 голосов
/ 07 мая 2020

Знаете ли вы, возможно ли иметь страницу html, содержащую частичный просмотр. В этом частичном представлении есть модальный всплывающий экран, скрытый в div.

    <div id="edit-order-modal" class="modal" style="left: 0 !important;" tabindex="-1" 
     role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    </div>

Этот модальный экран запускается нажатием кнопки и использованием JQuery для вызова метода, который вернет представление (модальное ) ..

    $("body").on("click", "#edit-order", function() {

    var orderId = $("#orderId").val();

    $.ajax({
        type: "GET",
        cache: false,
        url: "/Order/Edit",
        data: { orderId: orderId },
        success: function(result) {
            $editModal.html(result);
            $.validator.unobtrusive.parse("#edit-order-form");
            $editModal.modal("show");
        }
    });
});

Этот JQuery вызывает следующий метод, это модальная форма ..

public PartialViewResult Edit(int orderId)
{
    EditOrderViewModel vm = new EditOrderViewModel()
    {
        OrderId = orderId,
        EditDate = DateTime.Today.Date
    };
    return PartialView("_EditOrder", vm);
}

В моей ViewModel я добавил аннотацию данных [Required] к дату редактирования, и я также создал настраиваемый атрибут проверки для даты редактирования, поэтому его нельзя было установить на будущее.

Так вот, в чем моя проблема. Атрибут [Обязательный] работает идеально, сообщение об ошибке отображается в модальном окне, если дата редактирования оставлена ​​пустой. Мой настраиваемый атрибут проверки также работает, ModelState недействителен, а настраиваемое сообщение об ошибке находится в объекте ModelState. Однако мне было интересно, есть ли способ сделать отображение настраиваемого атрибута проверки аналогичным [Обязательный] в верхней части модального окна? Поскольку модальное окно является частью частичного представления, я не знаю, как (или возможно ли это) вернуться к экрану, который, в свою очередь, покажет частичный вид и отобразит модальный. Базовый вид и каждый частичный вид также имеют разные модели просмотра.

Надеюсь, это имеет смысл.

Заранее спасибо.

...