2010-04-15 4 views
1

Au départ, je prévoyais d'utiliser la page maquette pour chaque page de mon application. À la fin, j'ai découvert à chaque fois que la page est changée, elle recharge la pleine page même si elle a la même page maître. J'ai confondu le frameset avec la page maître. Ensuite, j'ai deux idées dans mon esprit pour y parvenir en n'utilisant pas la page maître.Meilleure façon de faire du contenu de mise à jour partielle sur ASP.NET

  1. En utilisant iframe et définir l'attribut à Runat serveur, de sorte que je peux changer la page dans mon behind. (Je préférais contrôler le flux de page côté serveur)

  2. Faire chaque page enfant unique au contrôle de l'utilisateur. Ensuite, chargez-le dynamiquement dans le panneau dans codebehind.

S'il vous plaît donnez-moi un avis quelle méthode est la meilleure dans ASP.NET avec AJAX activé, ou d'autres moyens qui est mieux. Merci.

Répondre

1

La page principale est utile pour contenir des éléments tels que des en-têtes, des textes de droits d'auteur et des menus qui ne changent pas de page en page dans un site. Je ne renoncerais pas à eux ou vous le regretterez quand vous allez apporter des changements à la mise en page de votre site.

Pour répondre à votre question, si vous avez AJAX, utilisez-le. En outre, considérez la mise à niveau simple vers ASP.NET MVC. Cela va vous faciliter la vie et résoudre beaucoup de vos problèmes en vous obligeant à considérer vos pages en termes de Vues et d'insertion de données en termes d'Actions.

La page maître fournit des espaces réservés au contenu des pages. Vous pouvez fournir un menu par défaut dans la page maître et le remplacer dans n'importe laquelle de vos pages. Les menus sont un cas particulier où ils changent souvent en fonction de la page sur laquelle vous vous trouvez. Si cette logique est relativement simple, alors vous pouvez mettre le menu dans un UserControl (ASP.NET) ou View (MVC) et permettre au contrôle/contrôleur de déterminer quelles données mettre dans le menu pour l'affichage à l'utilisateur.

En ce qui concerne les rechargements de page complète: Si vous utilisez AJAX, il n'y aura pas de rechargement complet de la page. De plus, si vous utilisez MVC, le chargement d'une page complète devient moins problématique car il n'y a pas d'état de vue et le balisage est beaucoup plus léger. Regardez le balisage de Stack Overflow. Je crois que c'est un site MVC. Bien sûr, il est généralement préférable de ne pas faire un pageload complet si cela peut être évité et AJAX permet cela. Je dis juste que MVC le rend moins d'un problème.

+0

Oui, il ne fait aucun doute que la page maquette est utile pour gérer la répétition de la conception et des données sur plusieurs pages. Mais cela entraînera le rechargement complet de la page, le surcoût sera plus important. Par exemple. J'ai un menu dans la page maître qui va construire dynamique en fonction des données dans la base de données. La page maître provoque la reconstruction du menu chaque fois que la page change. – kevin

+0

La page maître fournit des espaces réservés au contenu des pages. Vous pouvez fournir un menu par défaut dans la page maître et le remplacer dans n'importe laquelle de vos pages. Si vous utilisez AJAX, il n'y aura pas de rechargement complet de la page. De plus, si vous utilisez MVC, le chargement d'une page complète devient moins problématique car il n'y a pas d'état de vue et le balisage est beaucoup plus léger. Regardez le balisage de Stack Overflow. Je crois que c'est un site MVC. –

Questions connexes