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 = ; i < c.Length; i++)
{
if (c[i] == )
{
c[i] = (char);
continue;
}
if (c[i] > && c[i] < )
{
c[i] = (char)(c[i] - );
}
}
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());
ModelBinder 请求容错性的更多相关文章
- ASP.NET MVC5 ModelBinder
		
什么是ModelBinding ASP.NET MVC中,所有的请求最终都会到达某个Controller中的某个Action并由该Action负责具体的处理和响应.为了能够正确处理请求,Action的 ...
 - 亿级 Web 系统的容错性建设实践
		
一. 重试机制 最容易也最简单被人想到的容错方式,当然就是“失败重试”,总而言之,简单粗暴!简单是指它的实现通常很简单,粗暴则是指使用不当,很可能会带来系统“雪崩”的风险,因为重试意味着对后端服务的双 ...
 - 转:亿级Web系统的高容错性实践(好博文)
		
亿级Web系统的高容错性实践 亿级Web系统的高容错性实践 背景介绍 大概三年前,我在腾讯负责的活动运营系统,因为业务流量规模的数倍增长,系统出现了各种各样的异常,当时,作为开发的我,7*24小时地没 ...
 - 004. Asp.Net Routing与MVC 之二: 请求如何激活Controller和Action
		
上篇讲到 请求到达 MvcRouteHandler ,并且透过 IRouteHandler.GetHttpHandler 获取到了真正的处理程序 MvcHandler 这次我们看看,MvcHandle ...
 - Socket请求和Http请求的各自特点、区别及适用场景
		
Socket实现服务器与客户端之间的物理连接,并进行数据传输.主要有TCP/UDP两个协议.Socket处于网络协议的传输层.TCP:传输控制协议,面向连接的的协议,稳定可靠.当客户和服务器彼此交换数 ...
 - 亿级Web系统的高容错性实践
		
亿级Web系统的高容错性实践 背景介绍 大概三年前,我在腾讯负责的活动运营系统,因为业务流量规模的数倍增长,系统出现了各种各样的异常,当时,作为开发的我,7*24小时地没日没夜处理告警,周末和凌晨也经 ...
 - modelbinder机制原理
		
ModelBinder介绍 一.问题描述 当运行一个Mvc时,你控制器中的Action方法需要参数数据:而这些参数数据包含在HTTP请求中,包括表单上的Value和URL中的参数等.但问题是控制器中的 ...
 - 使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
		
调用jQuery的ajax方法时,jQuery会根据post或者get协议对参数data进行序列化; 如果提交的数据使用复杂的json数据,例如: {userId:32323,userName:{fi ...
 - MVC系统学习3—ModelBinder
		
在ASP.NET MVC中,每个请求都被映射到一个Action方法,我们可以在action的方法中定义相应类型的参数,View中通过post.get方式提交的request参数,只要名称一致就会对应到 ...
 
随机推荐
- 行香子·过尽千山
			
<行香子·过尽千山> 文/天地尘埃2020 过尽千山.水瘦山寒. 思来路.地咽天玄. 千金散尽,欲补穹天. 但孟春暖,仲春炫.暮春喧. 三皇五帝,魏武挥鞭. 朴无欲.衡玉玑璿. 金生丽水, ...
 - chrome浏览器调试线上文件映射本地文件
			
chrome浏览器调试线上文件映射本地文件 通过ReRes让chrome拥有路径映射的autoResponse功能. 前端开发过程中,经常会有需要对远程环境调试的需求.比如,修改线上bug,开发环境不 ...
 - LeetCode 811. Subdomain Visit Count (子域名访问计数)
			
题目标签:HashMap 题目给了我们一组域名,让我们把每一个域名,包括它的子域名,计数. 遍历每一个域名,取得它的计数,然后把它的所有子域名和它自己,存入hashmap,域名作为key,计数作为va ...
 - Ubuntu 13.10 安装 TeX Live 2013
			
注:笔者也是刚刚接触TeX系统,水平有限,若有疏漏之处还望指正. 中文解决方案 对于LaTeX中文排版,比较方便有这样的几种解决方案:LaTeX+CJK / LaTeX+XeTeX / CTeX.其中 ...
 - SOJ.Output the Yanghui triangel
			
Output the Yanghui triangel 总提交数量: 225 通过数量: 59 时间限制:1秒 内存限制:256兆 题目描写叙述 Writ ...
 - Android 自己定义UI圆角button
			
Android实际开发中我们一般须要圆角的button,普通情况下我们能够让美工做出来对应的button图片.然后放上去就可以,另外我们能够在布局文件里直接设置,也能够达到一样的效果. 以下解说在布局 ...
 - javascript设置和获取cookie的方法
			
设置cookie的方法,和获取cookie的方法例如以下 设置cookie document.cookie="name="+value; //获取cookie当中index是coo ...
 - Android指纹识别深入浅出分析到实战
			
指纹识别这个名词听起来并不陌生,但是实际开发过程中用得并不多.Google从Android6.0(api23)开始才提供标准指纹识别支持,并对外提供指纹识别相关的接口.本文除了能适配6.0及以上系统, ...
 - python库学习笔记——Pandas数据索引:ix、loc、iloc区别
			
Different Choices for Indexing 1. loc--通过行标签索引行数据 1.1 loc[1]表示索引的是第1行(index 是整数) import pandas as pd ...
 - bzoj1997 [Hnoi2010]Planar——2-SAT
			
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1997 神奇的经典2-SAT问题! 对于两个相交的区间,只能一里一外连边,所以可以进行2-SA ...