public static string EvaluateRouteUrl(string routeName, RouteLink control, IDotvvmRequestContext context) { var urlSuffix = GenerateUrlSuffixCore(control.GetValue(RouteLink.UrlSuffixProperty) as string, control); var coreUrl = GenerateRouteUrlCore(routeName, control, context) + urlSuffix; if ((bool)control.GetValue(Internal.IsSpaPageProperty) ! && !(bool)control.GetValue(Internal.UseHistoryApiSpaNavigationProperty) !) { return("#!/" + (coreUrl.StartsWith("~/", StringComparison.Ordinal) ? coreUrl.Substring(2) : coreUrl)); }
public static string EvaluateRouteUrl(string routeName, RouteLink control, IDotvvmRequestContext context) { var urlSuffix = GenerateUrlSuffixCore(control.GetValue(RouteLink.UrlSuffixProperty) as string, control); var coreUrl = GenerateRouteUrlCore(routeName, control, context) + urlSuffix; if ((bool)control.GetValue(Internal.IsSpaPageProperty)) { return("#!/" + (coreUrl.StartsWith("~/") ? coreUrl.Substring(2) : coreUrl)); } else { return(context.TranslateVirtualPath(coreUrl)); } }
public static string GenerateKnockoutHrefExpression(string routeName, RouteLink control, IDotvvmRequestContext context) { var link = GenerateRouteLinkCore(routeName, control, context); var urlSuffix = GetUrlSuffixExpression(control); if ((bool)control.GetValue(Internal.IsSpaPageProperty) && !context.Configuration.UseHistoryApiSpaNavigation) { return($"'#!/' + {link}{(urlSuffix == null ? "" : " + " + urlSuffix)}"); } else { return($"'{context.TranslateVirtualPath("~/")}' + {link}{(urlSuffix == null ? "" : " + " + urlSuffix)}"); } }