MVC中的DefaultModelBinder类(全角转换)

tech2022-09-24  71

DefaultModelBinder类的作用:自动截取空格和进行全角转换 使用方法: 1:安装程序集Install-PackAge Microsoft.AspNet.Mvc 2写一个类,继承自DefaultModelBinder类,在里面写实现逻辑的方法(全角转半角,空格的去除) 3:在Global中添加

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Mvc; namespace ZSZ.Common { public class TrimToDBCModelBinder:DefaultModelBinder { public override object BindModel(ControllerContext controllerContext,ModelBindingContext bindingContext) { object value = base.BindModel(controllerContext,bindingContext); if (value is string ) { string strValue = (string)value; string value2 = ToDBC(strValue).Trim(); return value2; } else { return value; } } //全角空格为12288,半角空格为32 //其他字符半角(33-126)与全角(65281-65374) 的对应关系相差65248 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 public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { //处理圆角半角和空格问题 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()); AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); } }
最新回复(0)