public override System.Threading.Tasks.Task ExecuteBindingAsync(System.Web.Http.Metadata.ModelMetadataProvider metadataProvider, HttpActionContext actionContext, System.Threading.CancellationToken cancellationToken) { CompositeValueProviderFactory valueproviderFactory = new CompositeValueProviderFactory(this.ValueProviderFactories); string parameterName = base.Descriptor.ParameterName; Type parameterType = base.Descriptor.ParameterType; string prefix = base.Descriptor.Prefix; ModelBindingContext context = new ModelBindingContext() { ModelName = prefix ?? parameterName, FallbackToEmptyPrefix = prefix == null, ModelMetadata = metadataProvider.GetMetadataForType(null, parameterType), ModelState = actionContext.ModelState, ValueProvider = valueproviderFactory.GetValueProvider(actionContext) }; object argument=""; // this.Binder.BindModel() ? context.Model : base.Descriptor.DefaultValue ; base.SetValue(actionContext, argument); TaskCompletionSource<AsyncVoid> Source = new TaskCompletionSource<AsyncVoid>(); Source.SetResult(new AsyncVoid()); return Source.Task; }