2015-09-14 2 views
2

У нас есть приложение MVC. У нас есть требование, если пользователь меняет любые данные на странице и пытается перейти от страницы без сохранения, тогда нам нужно показать некоторые «Вы уверены?». вид сообщения.Как определить модель изменена перед отправкой на сервер?

Задача здесь, как изменить данные? наша типичная схема проектирования приведена ниже

public class MyController:Controller 
{ 
    public ActionResult Index() 
    { 
     var model = LoadModelFromDB(); 
     return View(model); 
    } 
} 

, а затем мы связываем модель для просмотра с использованием методов расширения Html-помощника.
На стороне клиента Как определить, загрязнена ли модель перед отправкой данных на сервер?

+0

Вам нужен javascript. Один из вариантов заключается в сравнении каждого элемента управления 'defaultValue' свойство (' defaultChecked' для флажка) с свойством 'value' –

ответ

0

Это операция, которая происходит исключительно на клиенте - она ​​не имеет ничего общего с моделью в MVC.

Вы можете выполнить это, связав обработчик событий с onbeforeunload event с использованием JavaScript и предоставив дополнительную логику для проверки элементов формы для изменений.

Я внесла свой вклад в проект с открытым исходным кодом, который делает именно это, помогает исправить различия между браузерами, а также отслеживает элементы формы для изменений, позволяет подключать различные диалоговые рамки и переносит их в красивый плагин jQuery назван Dirty Forms.

+0

что делать, если я сериализую форму на готовом документе и сохраняю значение в переменной &, а затем снова сериализуем ее перед перемещением, и сравнить оба сериализованных значения, будет ли это работать? – LP13

+0

Я не пробовал, но это может сработать. Я скептически отношусь к тому, что что-то может пойти наперекосяк, если у вас есть AJAX на странице, динамически меняющие атрибуты формы. – NightOwl888

+0

ye, я должен сортировать и хранить каждый раз, когда изменения DOM – LP13

Смежные вопросы