Common\ModelBinders\StripMaskCharacters.cs
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text.RegularExpressions;
- using System.Web;
- using System.Web.Mvc;
- using MvcLists.Common.CustomAttributes;
- namespace MvcLists.Common.ModelBinders
- {
- public class StripMaskCharacters : DefaultModelBinder
- {
- protected override void SetProperty(ControllerContext controllerContext,
- ModelBindingContext bindingContext,
- System.ComponentModel.PropertyDescriptor propertyDescriptor,
- object value)
- {
- if(value!=null && propertyDescriptor.PropertyType==(typeof(string)))
- {
- value = ((string) value).Trim();
- if ((string)value == string.Empty)
- {
- value = null;
- }
- else if(propertyDescriptor.Attributes[typeof(MaskAttribute)]!=null
- && bindingContext.ValueProvider.GetValue(propertyDescriptor.Name)!=null
- && bindingContext.ValueProvider.GetValue(propertyDescriptor.Name).AttemptedValue!=null)
- {
- value = Regex.Replace(bindingContext.ValueProvider.GetValue(propertyDescriptor.Name).AttemptedValue,
- "[^0-9]", string.Empty);
- }
- }
- base.SetProperty(controllerContext, bindingContext, propertyDescriptor, value);
- }
- }
- }
Global.asax
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Mvc;
- using System.Web.Routing;
- using FluentValidation.Mvc;
- using MvcLists.Common.DataAnnotations;
- using MvcLists.Common.ModelBinders;
- namespace MvcLists
- {
- // Note: For instructions on enabling IIS6 or IIS7 classic mode,
- // visit http://go.microsoft.com/?LinkId=9394801
- public class MvcApplication : System.Web.HttpApplication
- {
- public static void RegisterGlobalFilters(GlobalFilterCollection filters)
- {
- filters.Add(new HandleErrorAttribute());
- }
- public static void RegisterRoutes(RouteCollection routes)
- {
- routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
- routes.MapRoute(
- "Default", // Route name
- "{controller}/{action}/{id}", // URL with parameters
- new { controller = "Person", action = "Index", id = UrlParameter.Optional } // Parameter defaults
- );
- }
- protected void Application_Start()
- {
- AreaRegistration.RegisterAllAreas();
- RegisterGlobalFilters(GlobalFilters.Filters);
- RegisterRoutes(RouteTable.Routes);
- ModelMetadataProviders.Current=new MyModelMetaDataProvider();
- ModelBinders.Binders.DefaultBinder = new StripMaskCharacters();
- FluentValidationModelValidatorProvider.Configure();
- }
- protected void Application_BeginRequest()
- {
- HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
- HttpContext.Current.Response.Cache.SetValidUntilExpires(false);
- HttpContext.Current.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
- HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
- HttpContext.Current.Response.Cache.SetNoStore();
- }
- }
- }
No comments:
Post a Comment