System.Web.UI.Control.ResolveClientUrlInternal C# (CSharp) Method

ResolveClientUrlInternal() private method

private ResolveClientUrlInternal ( string relativeUrl ) : string
relativeUrl string
return string
		string ResolveClientUrlInternal (string relativeUrl) {
			if (relativeUrl.StartsWith (J2EE.J2EEConsts.ACTION_URL_PREFIX, StringComparison.Ordinal))
				return CreateActionUrl (relativeUrl.Substring (J2EE.J2EEConsts.ACTION_URL_PREFIX.Length));

			if (relativeUrl.StartsWith (J2EE.J2EEConsts.RENDER_URL_PREFIX, StringComparison.Ordinal))
				return ResolveClientUrl (relativeUrl.Substring (J2EE.J2EEConsts.RENDER_URL_PREFIX.Length));

#endif
			if (VirtualPathUtility.IsAbsolute (relativeUrl) || relativeUrl.IndexOf (':') >= 0)
				return relativeUrl;

			HttpContext context = Context;
			HttpRequest req = context != null ? context.Request : null;
			if (req != null) {
				string templateSourceDirectory = TemplateSourceDirectory;
				if (templateSourceDirectory == null || templateSourceDirectory.Length == 0)
					return relativeUrl;

				string basePath = req.ClientFilePath;

				if (basePath.Length > 1 && basePath [basePath.Length - 1] != '/')
					basePath = VirtualPathUtility.GetDirectory (basePath, false);

				if (VirtualPathUtility.IsAppRelative (relativeUrl))
					return VirtualPathUtility.MakeRelative (basePath, relativeUrl);

				string templatePath = VirtualPathUtility.AppendTrailingSlash (templateSourceDirectory);

				if (basePath.Length == templatePath.Length && String.CompareOrdinal (basePath, templatePath) == 0)
					return relativeUrl;

				relativeUrl = VirtualPathUtility.Combine (templatePath, relativeUrl);
				return VirtualPathUtility.MakeRelative (basePath, relativeUrl);
			}
			return relativeUrl;
		}