Asp.net MVC 对输入的字符串字段做Trim处理的方法
导读:收集整理的这篇文章主要介绍了Asp.net MVC 对输入的字符串字段做Trim处理的方法_实用技巧,觉得挺不错的,现在分享给大家,也给大家做个参考。这篇文章主要介绍了Asp.net MVC 如何对所有用户输入的字符串字段做Trim处理,需...
收集整理的这篇文章主要介绍了Asp.net MVC 对输入的字符串字段做Trim处理的方法_实用技巧,觉得挺不错的,现在分享给大家,也给大家做个参考。这篇文章主要介绍了Asp.net MVC 如何对所有用户输入的字符串字段做Trim处理,需要的朋友可以参考下经常需要对用户输入的数据在插入数据库或者判断之前做Trim处理,针对每个ViewModel的字段各自做处理是我们一般的想法。最近调查发现其实也可以一次性实现的。
MVC4.6中实现方式
1,实现IModelBinder接口,创建自定义ModelBinder。
2,添加ModelBinder到MVC的绑定库。
protected void Application_Start() { //System.Web.Mvc.ModelBinders.Binders.DefaultBinder = new ModelBinders.TrimModelBinder(); System.Web.Mvc.ModelBinders.Binders.Add(tyPEof(string), new ModelBinders.TrimModelBinder()); AreaRegistration.RegisterAllAreas(); Filterconfig.RegisterGlobalfilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); }
3,确认一下效果
将密码后面的空格做Trim处理,绑定到ViewModel的时候变成1了:
Asp.net core 1.1 MVC中实现方式
1,自定义ModelBinder并继承ComplexTypeModelBinder
public class TrimModelBinder : ComplexTypeModelBinder { public TrimModelBinder(IDictionary propertyBinders) : base(propertyBinders) { } protected override void SetProperty(ModelBindingContext bindingContext, string modelName, ModelMetadata propertyMetadata, ModelBindingResult result) { var value = result.Model as string; result= string.IsNullOrWhiteSpace(value) ? result : ModelBindingResult.Success(value.Trim()); base.SetProperty(bindingContext, modelName, propertyMetadata, result); } }
2,为ModelBinder添加自定义Provider
public class TrimModelBinderProvider : IModelBinderProvider { public IModelBinder GetBinder(ModelBinderProviderContext context) { if (context.Metadata.IsComplexType & & !context.Metadata.IsCollectionType) { var propertyBinders = new Dictionary(); for (int i = 0; i context.Metadata.Properties.Count; i++) { var property = context.Metadata.Properties[i]; propertyBinders.Add(property, context.CreateBinder(property)); } return new TrimModelBinder(propertyBinders); } return null; } }
3,将Provider添加到绑定管理库
services.AddMvc().AddMvcOptions(s => { s.ModelBinderProviders[s.ModelBinderProviders.TakeWhile(p => !(p is ComplexTypeModelBinderProvider)).Count()] = new TrimModelBinderProvider(); } );
4,确认一下效果
将密码后面的空格做Trim处理,绑定到ViewModel的时候变成1了:
以上就是Asp.net MVC 对输入的字符串字段做Trim处理的方法_实用技巧的详细内容,更多请关注其它相关文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Asp.net MVC 对输入的字符串字段做Trim处理的方法
本文地址: https://pptw.com/jishu/592242.html