Знаете ли вы, возможно ли иметь страницу 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. Однако мне было интересно, есть ли способ сделать отображение настраиваемого атрибута проверки аналогичным [Обязательный] в верхней части модального окна? Поскольку модальное окно является частью частичного представления, я не знаю, как (или возможно ли это) вернуться к экрану, который, в свою очередь, покажет частичный вид и отобразит модальный. Базовый вид и каждый частичный вид также имеют разные модели просмотра.
Надеюсь, это имеет смысл.
Заранее спасибо.