代码
//using System.Web.Mvc; public class TrimToDBCModelBinder : DefaultModelBinder { public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { object value = base.BindModel(controllerContext, bindingContext); if (value is string) { var strValue = (string)value; strValue = ToDBC(strValue).Trim(); return strValue; } else { return value; } } /// <summary> 全角转半角的函数(DBC case) /// <para>全角空格为12288,半角空格为32</para> /// <para>其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248</para> /// </summary> /// <returns>半角字符串</returns> private static string ToDBC(string input) { char[] c = input.ToCharArray(); for (int i = 0; i < c.Length; i++) { if (c[i] == 12288) { c[i] = (char)32; continue; } if (c[i] > 65280 && c[i] < 65375) { c[i] = (char)(c[i] - 65248); } } return new string(c); } }
Global
ModelBinders.Binders.Add(typeof(string), new TrimToDBCModelBinder()); ModelBinders.Binders.Add(typeof(int), new TrimToDBCModelBinder()); ModelBinders.Binders.Add(typeof(long), new TrimToDBCModelBinder()); ModelBinders.Binders.Add(typeof(double), new TrimToDBCModelBinder());
原文:https://www.cnblogs.com/kikyoqiang/p/10825770.html