コード例 #1
0
ファイル: AbpLanguagesController.cs プロジェクト: SecTex/abp
    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("~/"));
    }