Manos.Mvc.ModelBinder.BindField C# (CSharp) Method

BindField() public method

public BindField ( string key, IModelValueProvider provider, object model, PropertyInfo pi ) : void
key string
provider IModelValueProvider
model object
pi System.Reflection.PropertyInfo
return void
        void BindField(string key, IModelValueProvider provider, object model, PropertyInfo pi)
        {
            // Get converted value
            var mv = GetModelValue(key, provider, pi);
            if (mv == null)
                return;

            // Add to our collection of model values
            ModelState.Values.Add(mv.Name, mv);

            // Copy over errors too
            foreach (var e in mv.Errors)
            {
                ModelState.Errors.Add(e);
            }

            // Apply the property value
            if (mv.IsValid)
            {
                // Save the original value
                mv.OriginalValue = pi.GetValue(model, null);

                // Apply the new value
                pi.SetValue(model, mv.ConvertedValue, null);
            }
        }