public virtual async Task <IActionResult> Switch(string culture, string uiCulture = "", string returnUrl = "") { if (!CultureHelper.IsValidCultureCode(culture)) { throw new AbpException("The selected culture is not valid! Make sure you enter a valid culture code."); } AbpRequestCultureCookieHelper.SetCultureCookie( HttpContext, new RequestCulture(culture, uiCulture) ); HttpContext.Items[AbpRequestLocalizationMiddleware.HttpContextItemName] = true; var context = new QueryStringCultureReplacementContext(HttpContext, new RequestCulture(culture, uiCulture), returnUrl); await QueryStringCultureReplacement.ReplaceAsync(context); if (!string.IsNullOrWhiteSpace(context.ReturnUrl)) { return(Redirect(GetRedirectUrl(context.ReturnUrl))); } return(Redirect("~/")); }