namespace System.Web.ModelBinding { using System.Globalization; using System.Web.Routing; public sealed class RouteDataValueProvider : DictionaryValueProvider { // RouteData should use the invariant culture since it's part of the URL, and the URL should be // interpreted in a uniform fashion regardless of the origin of a particular request. public RouteDataValueProvider(ModelBindingExecutionContext modelBindingExecutionContext) : base(GetRouteValues(modelBindingExecutionContext), CultureInfo.InvariantCulture) { } private static RouteValueDictionary GetRouteValues(ModelBindingExecutionContext modelBindingExecutionContext) { RouteData routeData = modelBindingExecutionContext.GetService(); if (routeData != null) { return routeData.Values; } return new RouteValueDictionary(); } } }