public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName).AttemptedValue; var referenceAnies = new List <ReferenceAny>(); if (!string.IsNullOrEmpty(value)) { var listOfValues = value.Split(','); foreach (var listOfValue in listOfValues) { //Data comes with this format: RawMaterial#86,RawMaterial#52 var values = listOfValue.Split('#'); var referenceAny = new ReferenceAny(); referenceAny.Type = values[0]; referenceAny.Id = Convert.ToInt32(values[1]); referenceAnies.Add(referenceAny); } } return(referenceAnies); }
protected override object CreateModel( ControllerContext controllerContext, ModelBindingContext bindingContext, Type modelType) { if (modelType == typeof(ReferenceAny)) { var value = (string)bindingContext.ValueProvider.GetValue(string.Format("{0}.referenceAny", bindingContext.ModelName)).ConvertTo(typeof(string)); ReferenceAny referenceAny = new ReferenceAny();; if (!string.IsNullOrEmpty(value)) { var values = value.Split('#'); referenceAny.Type = values[0]; referenceAny.Id = Convert.ToInt32(values[1]); } //bindingContext.ModelMetadata = ModelMetadataProviders.Current.GetMetadataForType(null, modelType); bindingContext.ModelMetadata.Model = referenceAny; return(referenceAny); } return(base.CreateModel(controllerContext, bindingContext, modelType)); }