0

次の問題の適切な解決策を探しています。

いくつかのクライアントで使用される ASP.NET MVC Web アプリケーションがあります。アプリケーション内で、クライアントはログインし、情報を含むいくつかのページを表示し、いくつかのフォームに入力できます。これはすべてうまくいきます。

ただし、クライアントのプロパティ (この場合はタイプ) に応じて、ビューに異なるテキストを表示することが必要です。これらのテキストは多言語にすることができ、ユーザーはアプリケーションで言語を変更できます。

私はこれに対していくつかの解決策を考え出しましたが、最善のアイデアが何であるかはわかりません。これらはこれまでの私の考えです:

データベースに情報を保存する

この場合、キー、クライアントのタイプ、言語、およびそれ自体のテキストを含むテーブル (たとえば、'ProgramTexts') を作成します。私のコントローラーでは、そのビューで使用されているキーを取得し、ViewModel に設定して、そのビューモデルをビューに渡します。ビューでは、ViewModel で指定された変数の値を簡単に表示できます。

これは小さなサイトではうまくいくと思いますが、多くの異なるコントローラーとビューでは少し分厚いようです. ビューから直接テキストを「呼び出す」ほうがよいのですが、ビューからデータベース呼び出しを行うのはあまり良くありません。

リソース ファイル

私の他のアイデアは、ローカリゼーション機能が組み込まれているため、リソース ファイルを使用することです。ただし、追加の変数 (この場合は型) に基づいて、リソースから変数を取得する方法がわかりません。

これを達成する方法について別のアイデアを持っている人はいますか?

4

1 に答える 1

0

私はリソースファイルオプションを選びます。タイプごとに異なるリソース ファイルを持つことは可能ですか? または、型ごとに異なる変数名を付けることは可能ですか?

例えば

Message1_TypeA
Message2_TypeB

次に、いくつかの巧妙なトリックを使用して、タイプに応じて正しいメッセージを読み取ることができます。おそらくリフレクションなどの巧妙なトリックです。

別のオプションは、文字列を次のように区切ることです。

Message1 = "A|B|C|D";

このようにして、すべてのタイプのメッセージを取得すると、コードで現在のタイプの正しいメッセージを取得できます。私はそれをうまく説明しましたか?私がしたとは思わない。

于 2012-05-23T15:31:55.623 に答える