Today, I started out trying VERY hard to get a good transition out of him. After about 20 minutes of work (during which I asked him for canter multiple times, and when he didn't pick it up, had to fix his trot), before I started trying VERY hard to get him to canter at all. No matter how nice of a trot you have (seriously, I even tried asking him from a collected shoulder-in), he throws up his head, tenses his back, and just trots faster. And I KNOW he knows what I want, and I KNOW he can do it, he was just refusing to.
I swear, I tried everything I knew to set him up in a way that he couldn't refuse. I tried trot-halt-trot-pretend to halt-canter transitions, didn't work. I tried trot leg-yield to canter, didn't work. I tried shoulder-in to canter, didn't work. Tried walk-canter, didn't work. I tried looking the wrong way, thinking I may be overbending, didn't work. I tried double-checking my position to be sure that I wasn't leaning to the inside, didn't make any difference. Every time, his reaction was the same: Throw up head, tense back, trot faster. Finally, I asked him nicely one more time, and when he didn't respond I had a "YOU WILL CANTER OR I WILL KILL YOU!!" moment and gave him a firm slap behind my leg with my dressage whip. I almost never use a whip on Jazz, because I've never felt that I needed one, and it seems to just worry him and cause him to rush out of his natural rhythm, so, needless to say, he was quite surprised, and cantered as much as I wanted him to after that. However, I don't feel like that was really a solution - I would be surprised if he doesn't "forget" how to canter again by tomorrow.
I don't think it's a disrespect issue, because he was doing everything else I told him to willingly. So I'm totally confused. Any ideas?