Préparer les asperges : Préchauffer le four à 200 °C. Beurrer légèrement un plat à gratin. Casser la base des asperges à la main pour retirer la partie dure. Si elles sont épaisses, éplucher le tiers inférieur à l'aide d'un économe.
Blanchir les asperges : Porter à ébullition une grande casserole d'eau salée. Plonger les asperges pendant 3 à 4 minutes selon leur grosseur, jusqu'à ce qu'elles commencent à s'assouplir tout en restant fermes.
Refroidir et sécher : Transférer immédiatement les asperges dans un saladier d'eau glacée pour stopper la cuisson. Égoutter soigneusement et sécher avec un torchon propre.
Faire revenir les échalotes : Émincer finement les échalotes. Faire fondre le beurre dans une poêle à feu moyen et les faire revenir pendant environ 4 minutes, jusqu'à ce qu'elles deviennent translucides sans colorer.
Préparer la sauce crémeuse : Ajouter la crème liquide, la moutarde de Dijon, la muscade, le sel et le poivre. Laisser frémir 3 à 4 minutes en remuant, jusqu'à ce que la sauce épaississe légèrement et nappe la cuillère. Retirer du feu et incorporer le jus de citron.
Monter le gratin : Disposer les asperges côte à côte dans le plat beurré, les pointes orientées dans le même sens. Verser la sauce sur les tiges en laissant les pointes légèrement dégagées.
Ajouter le fromage : Répartir uniformément le gruyère ou le comté râpé, puis le parmesan sur les asperges.
Faire gratiner : Enfourner à 200 °C pendant 15 à 18 minutes, jusqu'à ce que le fromage soit fondu et doré et que la sauce bouillonne sur les bords. Pour une croûte plus colorée, terminer par 2 minutes sous le gril en surveillant attentivement.
Laisser reposer : Sortir le gratin du four et laisser reposer 5 minutes avant de servir.