Ob es bei WebAPI hilft, in der web.config <customErrors mode="Off"/>
zu setzen, müsste ich erst ausprobieren, das kann ich nicht sicher sagen.
Du könntest auch in der global.asax.cs einen Breakpoint in Application_BeginRequest setzen. Wenn Du danach weiter laufen lässt, sollte die Exception, die zum HTTP 500 führt, sichtbar werden.
Ein Breakpoint in der Put-Methode wird nicht helfen, weil er da nicht mehr hineinkommt.
Ich würde bei Verwendung der Post-Methode übrigens denken, dass WebAPI da ein Objekt erwartet, das deinen Form-Feldern entspricht (also Id, Name, Model, Color, Price). Wenn Du dort einen String entgegennehmen willst, kann WebAPI die geposteten Felder darin nicht ablegen.
Rolf