If ATC insists on this untimely and clumsy practice, simply respond with "Standby", set the assigned SSR code, THEN pass your message.
Agree but don't forget you must readback squawks and then set it. This magical word "standby" is used extensively by ATC with good reason. I've always taught my pilot students to use it appropriately too. In the first call the convention is to pass in brief the essential information; "SOMEWHERE RADAR G-ABCD, VFR, request zone entry Topwood". This should allow ATC to assign an appropriate squawk.