public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
VirtualPathData path = base.GetVirtualPath(requestContext, values);
if (path != null && path.VirtualPath != String.Empty)
{
int qsIndex = path.VirtualPath.IndexOf("?", StringComparison.Ordinal);
// Lower Case
string newPath = qsIndex >= 0
? path.VirtualPath.Substring(0, qsIndex).ToLowerInvariant()
: path.VirtualPath.ToLowerInvariant();
// Trailing Slash
if (newPath.Length > 0 && newPath[newPath.Length - 1] != '/')
newPath += '/';
// Preserve Query String
if (qsIndex >= 0)
newPath += path.VirtualPath.Substring(qsIndex);
path.VirtualPath = newPath;
}
return path;
}