## You can cast two cantrips, but not for the reasons you state.

The reasons you state rely on _Booming Blade_ and _Green Flame Blade_ involving a weapon attack. However, this has nothing to do with the reason that a _Haste_'d Bladesinger can attack with a dagger, and cast two cantrips. The cantrips could be _Shocking Grasp_ and _Firebolt_, for example. They do this by taking the Attack action (dagger then _Shocking Grasp_), then taking the modified restricted Attack action granted by haste.

The Bladesinger's feature is a specific rule that states, "whenever you take the Attack action on your turn [...] you can cast one of your cantrips in place of one of those attacks." The _Haste_ spell states that you can "take the Attack (one weapon attack only) [...] action." Thus the _Haste_ spell is granting an Attack action on your turn, which can be modified by the feature.

Because the Bladesinger allows you one thing "in place of" another, it interacts with _Haste_ by allowing you to replace "one weapon attack" (the text present in the spell) with "cast one of your cantrips" (the text present in the feature). Thus, a Bladesinger with that feature under the effects of _Haste_ can `take the Attack (cast one of your cantrips only) [...] action`.