18
2011
Executando Javascript Carregado Dinamicamente por AJAX com ASP.NET MVC
Depois de começar a trabalhar com ASP.NET MVC comecei a perceber que havia um problema ao carregar algumas páginas via AJAX. A validação do lado cliente do próprio ASP.NET, chamadas a métodos javascript ou até mesmo um simples alert não eram executados.
A principal causa tem haver com a forma que a resposta que vem por AJAX é injetada na página. Por padrão no ASP.NET qualquer javascript carregado em um elemento DOM da página através de Ajax.ActionLink ou Ajax.BeginForm não será executado. Outro problema é que a validação do lado cliente precisa ser reinicializada depois que uma view parcial é carregada dinamicamente.
Algumas das soluções encontradas após pesquisar sobre o problema foram criar uma função javascript na página e colocá-la em na propridade AjaxOption.OnSuccess ou então utilizar jQuery diretamente para tratar esses casos. Isso contraria completamente a idéia de estar utilizando um framework que tenha validação do lado do cliente e AJAX de uma forma mais simples, e ao mesmo tempo ter de utilizar outros métodos para conseguir utilizar as mesmas funcionalidades que já são oferecidas pelo framework.
Depois de pesquisar mais um pouco encontrei uma solução melhor e que faz com que o código javascript carregado dinamicamente seja executado e reinicializa a validação do cliente automaticamente. Em resumo a solução é alterar o comportamento padrão do método Sys.Mvc.MvcHelpers._onComplete do arquivo MicrosoftMvcAjax.js.
O arquivo com a solução é esse: AjaxLoadedContentScriptFix.js.
Basta incluir o script na aplicação depois dos scripts jQuery e MicrosoftMVCValidation.
Tags
Tópicos Recentes
- Imagens Genéricas para Layouts
- Monitore o Consumo do Plano de Dados com My Data Manager
- Simulando Múltiplos Websites Localmente com Apache
- Executando Javascript Carregado Dinamicamente por AJAX com ASP.NET MVC
- Resolvendo Problemas de Conexão GPS no Samsung Galaxy 5 com Android 2.2 (Froyo)
- YSlow para Google Chrome
- Adicionando Facilmente QR Code ao Seu Site
- Técnica Pomodoro
- Utilizando jQuery de uma CDN Pública
- Google Chrome Frame









