通过Form提交表单,服务器端以模型绑定的方式接收,如果控件中的值是空白字符串,则缺省的会转化成null,这样在做Trim操作时非常不方便。通过修改ProjectBaseWeb.MvcDefaultModelBinder.cs,重载父类的BindModel方法能够实现不做这种转化。
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { bindingContext.ModelMetadata.ConvertEmptyStringToNull = false; Binders = new ModelBinderDictionary() { DefaultBinder = this }; return base.BindModel(controllerContext, bindingContext); }
即 将 bindingContext.ModelMetadata.ConvertEmptyStringToNull 的值由true改为 false。