Pergunta

Temos usado IScriptControl para vincular objetos javascript aos nossos UserControls e ServerControls e funcionou bem.

O problema é que o ASP.NET parece não fornecer nenhum método para vincular um objeto javascript a uma página.Até agora, colocamos funções simples no namespace global, mas estou desenvolvendo uma séria alergia a essa prática.

Seria fácil agrupar nossas funções em uma classe javascript e incluir o arquivo javascript na página, mas como instanciar o objeto, como referenciá-lo a partir de eventos de retorno de chamada e como passar dados para ele a partir do código -atrás, ainda não descobri.

Ou melhor, os métodos que usamos até agora (campos ocultos, strings javascript emitidas, etc.) realmente me incomodam.

Alguém tem ideias melhores?

Foi útil?

Solução

Não há nenhuma associação entre o arquivo JS e a página, a menos que você a construa.Com controles de script, a prática comum para armazenar estado são campos ocultos (o ACT usa essa abordagem).As únicas outras maneiras de se comunicar com o servidor é através de uma chamada de serviço da web, dados postados em formulário ou invocando um __doPostBack (mas isso não é AJAX).

Você pode criar alguma arquitetura básica para vincular os dois.Com controles de script, o servidor renderiza uma instrução $create para passar propriedades e manipuladores de eventos do servidor para o cliente;os dados postados de volta no servidor são armazenados em variáveis ​​ocultas e processados ​​no cliente (com a maioria das bibliotecas de script), portanto, os controles de script e o ACT ocultam muito disso para você, e você teria que construir um pouco disso se quisesse. automatizar isso.Pode ser útil estudar a interação cliente-servidor para lhe dar ideias sobre o que fazer se quiser personalizar isso.

Engraçado, eu estava pensando na mesma coisa para meu projeto Nucleo (uma biblioteca minha de terceiros) no codeplex, mas ainda não consegui fazer isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top