I have this property in my view model:
[DisplayName(\"Region\")]
public int? RegionId { get; set; }
I pass my view model to my controller,
I have a feeling the problem lies somewhere out of the sample code you have shown. I have created a sample application that just creates a form and has a nullable field, but it works as expected. I would start eliminating other variables in your setup until you can to a working ViewModel with a nullable property, and you should be able to identify what is causing the problem.