I think you should leave compression for IIS to do.
In applicationhost.config you can define:
<system.webServer>
<urlCompression doDynamicCompression="true" />
<httpCompression>
<dynamicTypes>
<add mimeType="application/json" enabled="true" />
<add mimeType="application/json; charset=utf-8" enabled="true" />
</dynamicTypes>
</httpCompression>
</system.webServer>
You can read more here: http://www.west-wind.com/weblog/posts/2011/May/05/Builtin-GZipDeflate-Compression-on-IIS-7x
On the other hand, you may use more compact format - like https://code.google.com/p/protobuf-js/ or http://www.servicestack.net/mythz_blog/?p=176.
Update: As long as question author needs requests to be compressed, that is not possible to do using default browser capabilities (Why can't browser send gzip request?).
Anyway, there's lz4 compression algorithm, which is very fast and has implementations in many platforms (javascript and c# included), that may be a solution, especially because someone benchmarked it and it worked faster than protobuff (I think that was end to end test, can't find details at the moment).