Exemple #1
0
        public object GetData(HttpContextBase context)
        {
            var store = context.BinderStore();

            if (store.Properties.Count == 0)
            {
                return(null);
            }

            var table = new List <object[]> {
                new[] { "Ordinal", "Model Binder", "Property/Parameter", "Type", "Attempted Value Providers", "Attempted Value", "Culture", "Raw Value" }
            };

            var ordinal = 0;

            foreach (var boundProperty in store.Properties)
            {
                var providers = new List <object[]> {
                    new [] { "Provider", "Successful" }
                };
                providers.AddRange(boundProperty.NotFoundIn.Select(valueProvider => new[] { valueProvider.GetType().ToString(), "False" }));

                if (boundProperty.FoundIn != null)
                {
                    providers.Add(new[] { boundProperty.FoundIn.GetType().ToString(), "True", "selected" });
                }

                table.Add(new [] { ordinal++,
                                   boundProperty.ModelBinderType == null ? null : boundProperty.ModelBinderType.ToString(),
                                   string.IsNullOrEmpty(boundProperty.MemberOf) ? boundProperty.Name : boundProperty.MemberOf + "." + boundProperty.Name,
                                   boundProperty.Type.ToString(),
                                   providers,
                                   boundProperty.AttemptedValue,
                                   boundProperty.Culture != null ? boundProperty.Culture.DisplayName:null,
                                   boundProperty.RawValue,
                                   string.IsNullOrEmpty(boundProperty.MemberOf) ? "":"quiet" });
            }

            return(table);
        }