2016-08-17 8 views
0

C#、MVC、Entity FrameworkおよびCodeFirstアプローチを使用してアプリケーションを作成しました。私は手動でデータベースを変更した後にユーザーがログアウトしてしまうという問題があります。これは大きな問題ではありませんが、サービスが終了したときにこのようなことは起こりにくいため、管理者がログインしたときに翻訳を含む.resxファイルが変更されると、問題はより面倒です。私たちは、言語を追加したり、サイトに表示されるデフォルトのテキストを変更したりするためのパネルを作成しました。私はテキストを変更するたびに(つまり、.resxファイル内の行)、私はログアウトします。私はどこに問題があるのか​​、それをどのように追跡するのか分かりません。それが役立ちますが、ここでの.resxファイル内の既存のテキストを編集するためのコードがある場合は知らん:データベースを手動で変更した後、またはプログラムでresxファイルを修正した後に、MVCユーザーがログアウトする

using (ResXResourceReader resxReader = new ResXResourceReader(resxFilePath)) 
{ 
    resx = resxReader.Cast<DictionaryEntry>().ToList(); 
    var existingResource = resx.SingleOrDefault(entry => entry.Key.ToString().Equals(model.EntryName)); 
    var modifiedResx = new DictionaryEntry() 
    { 
     Key = existingResource.Key, 
     Value = model.NewEntryValue 
    }; 

    resx.Remove(existingResource); 
    resx.Add(modifiedResx); 
} 

using (ResXResourceWriter resxWriter = new ResXResourceWriter(resxFilePath)) 
{ 
    resx.ForEach(r => 
    { 
     resxWriter.AddResource(r.Key.ToString(), r.Value.ToString()); 
       }); 
     resxWriter.Generate(); 
    } 
} 

答えて

0

あなたは(resxファイル)、実行時にリソースを変更することはできません。 Resourceの値は、このコードを書くことによってのみ得られます。

ProjectTest.Resources.Message 

あなたは、この目的のためにApplication settings and User settingを使用することができます。

これは、設定を構築するためにデザイナーを使用できるようにする、と書きます:

string string1 = Properties.Settings.Default.String1; 

そして:

Properties.Settings.Default.String1 = "whatever"; 
Properties.Settings.Default.Save(); 
+0

しかし、私はそこに別の言語を置けばいいのどのようにそれを得ることはありませんか?すべての単一のテキストは同じ正確な名前を持つ必要があるため、それを使用するページに表示することができます。あなたのアプローチを理解しようとすると、テキスト「Hello World」はn個の行に保管する必要があります.nはlangaugesの数です。 – Aranha

関連する問題