Je viens de mettre à jour mon site d'ASP.NET 3.5 à 4.0. J'ai travaillé à travers quelques changements de rupture et il y avait plus que ce à quoi je m'attendais. Je ne peux pas comprendre, cependant, c'est pourquoi mon contrôle <asp:Substitution />
a soudainement cessé de fonctionner comme il se doit. Il est supposé ignorer les paramètres de cache de sortie de la page parente et mettre à jour à chaque requête. Pour une raison quelconque, cela ne se produit pas. C'est la mise en cache pendant les 10 minutes complètes (le paramètre OutputCache pour ma page d'accueil). Des idées?Pourquoi mon ASP: Le contrôle de substitution ne fonctionne soudainement pas dans ASP.NET 4.0?
2
A
Répondre
2
< asp: La substitution > et les autres contrôles serveur ne sont pas pris en charge dans MVC. La substitution de réponse en particulier est intrinsèquement liée au pipeline WebForms. Le fait que cela a fonctionné dans MVC 1 était un accident heureux mais n'était pas intentionnel.
L'équipe MVC travaille sur les moyens d'activer le cache de substitution dans MVC 3 et au-delà, mais il y aura probablement des mécanismes MVC spécifiques pour ce faire, vous ne devriez pas attendre < asp: Remplacement > ou Response.WriteSubstitution () pour aller de l'avant. En attendant, la meilleure option est de mettre en cache toute la page, puis utilisez Javascript/AJAX pour que le client remplisse les parties à mettre à jour.
Questions connexes
- 1. Pourquoi ASP.Net ne reconnaît-il pas mon contrôle utilisateur?
- 2. DataBinding ne fonctionne pas dans mon contrôle utilisateur ASP.NET
- 3. substitution Paramètres ne fonctionne pas
- 4. Pourquoi le débogueur ne fonctionne pas
- 5. Pourquoi "schtasks" ne fonctionne pas mon travail?
- 6. ASP.net AppendHeader ne fonctionne pas dans ASP MVC
- 7. Ajax Le contrôle d'accordéon ne fonctionne pas
- 8. Le contrôle ListView ne fonctionne pas
- 9. pourquoi mon impression ne fonctionne pas?
- 10. Pourquoi mon CSS ne fonctionne-t-il pas dans IE?
- 11. Pourquoi mon mysql DISTINCT ne fonctionne pas?
- 12. Pourquoi mon javascript ne fonctionne pas
- 13. Pourquoi mon code PHP ne fonctionne pas?
- 14. Pourquoi mon test ne fonctionne pas
- 15. asp: Menu Ne fonctionne pas sur webhost
- 16. Pourquoi mon @singleton ne fonctionne pas?
- 17. Java: Pourquoi mon fichier ne fonctionne pas?
- 18. Pourquoi mon application SWT ne fonctionne pas?
- 19. Asp.net 4.0 application enfant ne fonctionne pas sur IIS 7.5?
- 20. classic asp/asp.net website - global.asa ne fonctionne pas
- 21. Le contrôle de connexion ASP ne fonctionne pas dans un sous-programme Sitecore 6
- 22. SkinID sur le contrôle personnalisé ne fonctionne pas (asp.net)
- 23. Pourquoi InvalidateRow et InvalidateColum ne fonctionnent-ils pas soudainement?
- 24. Le proxy ne fonctionne pas dans HttpClient 4.0 beta2
- 25. Javascript/ASP - ne fonctionne pas
- 26. Le contrôle de l'assistant ne fonctionne pas
- 27. ASP.NET 'Donut Caching' ne fonctionne pas
- 28. Pourquoi le code d'édition de mon application ASP.NET MVC ne fonctionne-t-il pas?
- 29. MySQL ne fonctionne soudainement pas sur Windows Server 2003
- 30. Pourquoi la substitution de texte SQL ne fonctionne-t-elle pas dans InstallShield?
Merci Levi. J'ai trouvé une autre solution de contournement. J'ai changé de stratégie car il n'y a qu'une seule section de la page qui bénéficie de la mise en cache. Comme il s'avère, on peut utiliser la directive OutputCache sur une vue partielle si vous l'ajoutez à votre page comme s'il s'agissait d'un contrôle Web Forms ... http://www.highoncoding.com/Articles/638_Understanding_Partial_Views_in_ASP_NET_MVC_Application.aspx –
I évitez d'utiliser <% @ OutputCache%> sur un fichier .ascx, car il s'agit également d'un hack vilain dont le fonctionnement n'est pas garanti (tout comme la mise en cache de substitution est interrompue). Si vous devez mettre en cache seulement une partie de la page, pensez à utiliser l'attribut [ChildActionCache] de MVC Futures for ASP.NET 4 (http://aspnet.codeplex.com/releases/view/41742). Cet attribut peut être appliqué à une méthode qui est la cible d'un Html.RenderAction(), et seulement le contenu de ce RenderAction() sera mis en cache pendant la période spécifiée. – Levi