Como fazer controles do Ajax Control Toolkit funcionar no projeto atualizado do VS2008 para o VS2010
Pergunta
Eu tinha um projeto de trabalho no VS2008 / .NET 3.5 usando controles do kit de ferramentas do Ajax Control (que tem como alvo .NET 3.5).
Atualizei o projeto no VS2010 beta 2. Eu escolhi segmentar .NET 4.0 para poder aproveitar o roteamento para formas da web (que está funcionando).
Quando uma página com um modalpopuPextender carrega, no entanto, recebo erros, "erro de sintaxe" referenciando um URI como:
{localhost}/webresource.axd?d=-sr5kj2ykk7777pdlsa2&t=63396051687981257.
Em seguida, a página é carregada incorretamente porque os arquivos JavaScript necessários falharam no carregamento.
Tentei baixar o novo Control Toolkit de Ajax.codeplex.com e referenciar o AjaxControltoolkit.dll dentro, limpando arquivos temporários para a estrutura 2.0 e 4.0, mas não fez diferença.
Eu então li esta postagem sobre depurar ainda mais o erro. Quando descriptografi os pedidos para webresource.axd, eles mostraram caminhos que pareciam Yay:
- s | webforms.js
- Zsystem.web, 4.0.0.0 ,, b03f5f7f11d50a3a | webuivalidation.js |
Portanto, as referências delimitadas de tubos aos arquivos parecem ter sido construídas incorretamente. Parece improvável que alguém tenha alguma idéia do que fazer sobre isso, mas que diabos ...
Solução
adicionar
Routetable.routes.ignore ("*.js");
para registrar Routes em global.ascx.cs
Outras dicas
Você pode baixar a fonte do codeplex e reconstruí -lo para .NET 4.0 via vs 2010, mas acho que não fará muita ajuda.
Se você deseja usar o roteamento, que faz parte do .NET 3.5 (com SP1), o que você precisa fazer é expor *.xd manipuladores de ser roteados.
Aqui está um código de amostra C# para alcançar isso
RouteTable.Routes.Add(new Route("{resource}.axd/{*pathInfo}", new StopRoutingHandler()));