示例#1
0
        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));
        }