Skip to content

Instantly share code, notes, and snippets.

@JamieDixon
Created June 18, 2014 15:54
Show Gist options
  • Save JamieDixon/6cf0cdf1dcdf3aa62909 to your computer and use it in GitHub Desktop.
Save JamieDixon/6cf0cdf1dcdf3aa62909 to your computer and use it in GitHub Desktop.
Custrom Binder for Module
protected override object CreateModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Type modelType)
{
var moduleName = bindingContext.ValueProvider.GetValue(bindingContext.ModelName + ".ModuleName");
var moduleTypes = new Dictionary<string, Type>
{
{ "SearchDetails", typeof(SearchDetailsProfileModule) },
{ "SubscriptionType", typeof(SelectedSubscriptionsProfileModule) },
{ "PausePeriod", typeof(PausePeriodProfileModule) },
{ "UserProfile", typeof(UserDetailsProfileModule)}
};
Type type;
if (moduleName == null || !moduleTypes.TryGetValue(moduleName.AttemptedValue, out type))
{
return null;
}
var model = Activator.CreateInstance(type);
bindingContext.ModelMetadata = ModelMetadataProviders.Current.GetMetadataForType(() => model, type);
return model;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment