public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
 {
     ValueProviderResult formIdResult = bindingContext.ValueProvider.GetValue("FormId");
     if (formIdResult == null)
         return null;
     long formId = long.Parse(formIdResult.AttemptedValue);
     ValueProviderResult controlIdResult = bindingContext.ValueProvider.GetValue(bindingContext.ModelName + ".Id");
     if (controlIdResult == null)
         return null;
     int controlId = int.Parse(controlIdResult.AttemptedValue);
     FormViewModel form;
     ControlViewModel model = FormControlManager.GetControl(formId, controlId, out form);
     if (model == null)
         return null;
     bindingContext.ModelMetadata = ModelMetadataProviders.Current.GetMetadataForType(() => model, model.GetType());
     return base.BindModel(controllerContext, bindingContext);
 }