Le fait que ce soit en C# ca fait partie du défi ? Parce que faire ça en CSS et Javascript ça prend deux minutes trente.
Edit : Après voir lu l'article que tu proposes sur pompage.net, il s'agit effectivement d'une partie de la réponse. Si cette façon de faire convient parfaitement pour tout type de menu de navigation et pour tout contrôle style navigation à onglet, elle n'apporte pas les éléments pour en faire un tabControl au sein d'un module.
Pour ce type de contrôle, tout dépend de ce que tu souhaite faire. Déjà nous sommes d'accord qu'un menu de navigation en UL LI est l'idéal.
Dotnetnuke a un controle TadStrip avec allers-retous Ajax. Très sympa, mais encore faut-il réussir à le prendre en main. http://webcontrols.dotnetnuke.com/dnntabstrip.aspx Il va génèrer le menu tout seul, et une interface programme pour déclarer de nouveaux panneaux.
Personnellement, je ferai ça en full CSS et Javascript. Cela rend la chose plus souple pour les évolutions suivantes, telles que l'ajout de frameworks d'animation.
Si tu ne vois pas comment afficher/masquer une DIV en Javascript suite à un click sur un élément cliquable je te donnerai un exemple.
seb