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语言 · 新生舞会
    C语言 · 集合运算
    C语言 · 字符串的展开
    C语言 · 学做菜
    C语言 · 最长公共子序列 · 最长字符序列
    C语言 · 复数求和
    C语言 · 扶老奶奶过街
    C语言 · 删除重复元素
    1-3
    1-4
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/10825770.html
Copyright © 2011-2022 走看看