[SOLVED] Best way to trim strings after data entry. Should I create a custom model binder?


I’m using ASP.NET MVC and I’d like all user entered string fields to be trimmed before they’re inserted into the database. And since I have many data entry forms, I’m looking for an elegant way to trim all strings instead of explicitly trimming every user supplied string value. I’m interested to know how and when people are trimming strings.

I thought about perhaps creating a custom model binder and trimming any string values there…that way, all my trimming logic is contained in one place. Is this a good approach? Are there any code samples that do this?


  public class TrimModelBinder : DefaultModelBinder
    protected override void SetProperty(ControllerContext controllerContext, 
      ModelBindingContext bindingContext, 
      System.ComponentModel.PropertyDescriptor propertyDescriptor, object value)
      if (propertyDescriptor.PropertyType == typeof(string))
        var stringValue = (string)value;
        if (!string.IsNullOrWhiteSpace(stringValue))
          value = stringValue.Trim();
          value = null;

      base.SetProperty(controllerContext, bindingContext, 
                          propertyDescriptor, value);

How about this code?

ModelBinders.Binders.DefaultBinder = new TrimModelBinder();

Set global.asax Application_Start event.

Answered By – takepara

Answer Checked By – Dawn Plyler (BugsFixing Volunteer)

Leave a Reply

Your email address will not be published. Required fields are marked *