public static void Register(HttpConfiguration config) { //支持跨域访问 //config.EnableCors(new EnableCorsAttribute("*", "*", "*")); //日期格式化 if (config.Formatters.Count(m => m.GetType() == typeof(DateTypeFormatter)) == 0) config.Formatters.Insert(0, new DateTypeFormatter()); config.Formatters.Remove(config.Formatters.XmlFormatter); config.Services.Replace(typeof(IBodyModelValidator), new EntityAwareBodyModelValidator()); config.BindParameter(typeof(ODataQueryCriteria), new ODataQueryCriteriaBinder()); #region PUT Id 参数绑定 //PUT 时,Id 需要从路由中获取,这里需要提供一个额外的参数绑定实现。 config.ParameterBindingRules.Add(parameter => { Type parameterType = parameter.ParameterType; if (typeof(Entity).IsAssignableFrom(parameterType)) { var formatters = parameter.Configuration.Formatters; var bodyModelValidator = parameter.Configuration.Services.GetBodyModelValidator(); return new IdFromRouteFormatterParameterBinding(parameter, formatters, bodyModelValidator); } return null; }); //上述方案,也可以替换以下服务实现。 //config.Services.Replace(typeof(IActionValueBinder), new iWSActionValueBinder()); #endregion }
public static void Register(HttpConfiguration config) { config.MapHttpAttributeRoutes(); config.BindParameter(typeof(DashboardRequest), new DashboardRequestModelBinderAttribute()); // Uncomment the following line of code to enable query support for actions with an IQueryable or IQueryable<T> return type. // To avoid processing unexpected or malicious queries, use the validation settings on QueryableAttribute to validate incoming queries. // For more information, visit http://go.microsoft.com/fwlink/?LinkId=279712. //config.EnableQuerySupport(); }
public void BindParameter_InsertsModelBinderProviderInPositionZero() { // Arrange HttpConfiguration config = new HttpConfiguration(); Type type = typeof(TestParameter); IModelBinder binder = new Mock<IModelBinder>().Object; // Act config.BindParameter(type, binder); // Assert SimpleModelBinderProvider provider = config.Services.GetServices(typeof(ModelBinderProvider)).OfType<SimpleModelBinderProvider>().First(); Assert.Equal(type, provider.ModelType); }
public static void Register(HttpConfiguration config, string area = null) { if (Dot.Utility.Config.ConfigHelper.GetAppSettingOrDefault("EnableCors", false)) { WebApiCors.EnableCors(config); } //日期格式化 if (config.Formatters.Count(m => m.GetType() == typeof(DateTypeFormatter)) == 0) { config.Formatters.Insert(0, new DateTypeFormatter()); config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; } config.Formatters.Remove(config.Formatters.XmlFormatter); config.Services.Replace(typeof(IBodyModelValidator), new EntityAwareBodyModelValidator()); config.BindParameter(typeof(ODataQueryCriteria), new ODataQueryCriteriaBinder()); #region PUT Id 参数绑定 //PUT 时,Id 需要从路由中获取,这里需要提供一个额外的参数绑定实现。 config.ParameterBindingRules.Add(parameter => { Type parameterType = parameter.ParameterType; if (typeof(Entity).IsAssignableFrom(parameterType)) { var formatters = parameter.Configuration.Formatters; var bodyModelValidator = parameter.Configuration.Services.GetBodyModelValidator(); return new IdFromRouteFormatterParameterBinding(parameter, formatters, bodyModelValidator); } return null; }); //上述方案,也可以替换以下服务实现。 //config.Services.Replace(typeof(IActionValueBinder), new iWSActionValueBinder()); #endregion AreaWebApiConfig.Register(config, area); }
private static void InitializeModelBinders(HttpConfiguration httpConfiguration) { var abpApiDateTimeBinder = new AbpApiDateTimeBinder(); httpConfiguration.BindParameter(typeof(DateTime), abpApiDateTimeBinder); httpConfiguration.BindParameter(typeof(DateTime?), abpApiDateTimeBinder); }