I had the same problem before and the answer is already available in a few forums and even here at SO: ModelState.IsValid even when it should not be?
You can also add a custom filter to validate (invalidate) missing fields and/or null values
http://www.asp.net/web-api/overview/formats-and-model-binding/model-validation-in-aspnet-web-api