2017-09-25 11 views
1

私はそれは私のローカルマシン上ではなく、テストサーバー上で正常に動作するASP.NETの定型ローカライズ

<a href="/AbpLocalization/ChangeCulture?cultureName=en">English</a> 

のように言語を変更しています。
また、ローカルでクリックすると、nullコンテンツのあるabp.message.errorが表示されることがあります。

私はそれについていくつか質問があります:

1)このURL(/ AbpLocalization ...)、コントローラをリカに見えますが、そのような事は私のコードではありませんとは何ですか?

2)どうすれば見つけてデバッグできますか?テストサーバーをクリックするボタンをリロード状態に(それをクラッシュしますが、言語を変更していない別のサーバー)

答えて

1

解決済み! 問題を引き起こしたのは、テストサーバー上のデータベースにローカルデータベース内のテーブルが1つもなく、さらに重要な点です。このテーブルは、Entity Frameworkからデータベースに転送されたモデルに含まれていました。テストサーバーにテーブルを追加した後、すべて正常に動作します。

0

ASP.NETボイラープレートは、モジュールから構築されたアプリケーションフレームワークであるそのうちの一つがあることに何が起こるか

3)ローカリゼーションモジュール。オープンソースなので、デフォルトの動作を変更することはできますが、本当に正当な理由なく実行することはお勧めしません。

ローカライズは、コアパッケージの一部であり、それがここにあります:GitHub

私はドキュメントを使用し、あなたのニーズにそれを設定することをお勧めいたします。ローカライゼーションに関するドキュメントはdocumentationです。

最後に、テスト環境で実行コンフィギュレーションをチェックする必要があります。これは、何らかの方法でフォルトが発生する可能性があります。エラーのもう1つの理由は、ABPバージョンのissueです。

0

AbpLocalizationControllerがソースコードにここ

のsrc/Abp.AspNetCore/AspNetCore/MVC /コントローラ/ AbpLocalizationController.cs

に位置し、これは変更培養コードです:

public virtual ActionResult ChangeCulture(string cultureName, string returnUrl = "") 
     { 
      if (!GlobalizationHelper.IsValidCultureCode(cultureName)) 
      { 
       throw new AbpException("Unknown language: " + cultureName + ". It must be a valid culture!"); 
      } 

      var cookieValue = CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(cultureName, cultureName)); 

      Response.Cookies.Append(
       CookieRequestCultureProvider.DefaultCookieName, 
       cookieValue, 
       new CookieOptions {Expires = Clock.Now.AddYears(2)} 
      ); 

      if (AbpSession.UserId.HasValue) 
      { 
       SettingManager.ChangeSettingForUser(
        AbpSession.ToUserIdentifier(), 
        LocalizationSettingNames.DefaultLanguage, 
        cultureName 
       ); 
      } 

      if (Request.IsAjaxRequest()) 
      { 
       return Json(new AjaxResponse()); 
      } 

      if (!string.IsNullOrWhiteSpace(returnUrl) && AbpUrlHelper.IsLocalUrl(Request, returnUrl)) 
      { 
       return Redirect(returnUrl); 
      } 

      return Redirect("/"); //TODO: Go to app root 
} 

https://github.com/aspnetboilerplate/aspnetboilerplate/blob/dev/src/Abp.AspNetCore/AspNetCore/Mvc/Controllers/AbpLocalizationController.cs

このコードをデバッグする場合は、githubリポジトリからプロジェクトをフォークし、ソリューションに追加します。あなたのabp dll参照をこのローカルプロジェクト参照に置き換えます。

一方、エラーの内容については言及しませんでした。それを学ぶにはウェブサイトのログをチェックしてください。

+0

問題は、エラーが実際に何も言わないということです。{data:null、status:0、config:{...}、statusText: ""、ヘッダー:ƒ} – Dawid

+0

の言語は、nullのタイトルとnullメッセージでAbp.message.errorメソッドが呼び出されます。あなたは切り替えようとしていますか?それはcultureName = en ?? –

+0

私はポーランド語と英語(cultureName 'pl'と 'en')を切り替えようとしています。 – Dawid

関連する問題