ModelState, JSON, AJAX, Modal

Vamos dizer que você tem a seguinte situação, um CRUD simples, com uma tela de listagem, uma de cadastros outra de edição, uma detalhes e outra de confirmação do delete. Se for essa a situação que atende seu cliente, ótimo o template do MVC te atende perfeitamente. :D Fim da história.
Agora, você tem a opção deixar a vida do usuário um pouco mais simples quando ele quer apagar um registro da listagem, afinal clicar em no delete, ir para outra tela e confirmar a exclusão pode parecer pouco usável, pouco "user friendly".
Vamos a seguinte situação, o usuário clica em delete, abre um modal de confirmação, ele confirma, a listagem atualiza e pronto! Tudo na "mesma tela" e mais dinâmico porque o usuário tem a resposta a sua ação muito mais rápido.
Se você, assim como eu, passou por essa situação a solução que fiz pode te ajudar e muito. Algumas vezes quando facilitamos a vida do usuário temos um pouco mais trabalho, mas normalmente no final o resultado é recompensador.

Nós vamos fazer não necessariamente nessa ordem:
  1. Criar uma partial view para listagem
  2. Criar um método de extensão para o ModelState
  3. Serializar o ModelState em JSON
  4. Abrir um modal para delete ao invés de uma tela nova
  5. Chamar a action via ajax post e tratar o retorno e dar o feedback para o usuário.
Aqui está o código do projeto, ele simples, com o objetivo de apresentar apenas a solução apresentada. Espero que seja útil Esse post surgiu uma dúvida do Thiago Maturana do grupo de MVC no facebook, mande sua dúvida também. Quem sabe ela não vira um post aqui? ;)

Postagens mais visitadas