zoukankan      html  css  js  c++  java
  • ModelBinder 请求容错性

    代码

        //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());
  • 相关阅读:
    C++ P1890 gcd区间
    C++ P1372 又是毕业季I
    C++ CF822A I'm bored with life
    C++ P4057 [Code+#1]晨跑
    C++ CF119A Epic Game
    关于树状数组的几点总结
    markdown语法
    portal开发"下拉框"“日期框”查询要怎么配置
    泛型总结--待续
    Actioncontext跟ServletActionContext的区别---未完待续
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/10825770.html
Copyright © 2011-2022 走看看