Я видел, как этот вопрос поднимался в нескольких местах, и не видел хороших ответов. Поскольку мне приходилось делать это самому несколько раз, я решил опубликовать свое решение. Если у вас есть что-то лучше, пишите.
Н.Б. Здесь используется версия веб-API ASP.NET MVC 4 Beta 2 — будущие версии могут измениться!
Обновление: это все еще работает в ASP.NET MVC 4 RC