2012-03-15 12 views
0

MVCプロジェクトの作業を開始しました。私は、既存のMVC3サイトを多言語に対応するように変換する必要があります。私が新しいので、MVC3に間違った言葉/定義/キーワードを使用しているかもしれませんので、私と一緒に裸にしてください。する方法mvc3の@Modelプロパティのいずれかのローカリゼーション

私は1つHeaderPage.cshtmlを持っており、それは

@model IHeaderPage 

によってそれにバインドさビューモデルを持っており、それがこのモデルのプロパティをouputs:

<h3>@Model.HeaderName</h3> 

私はメインページから、このビューと呼ばれます。 cshtml

@Html.Partial("HeaderPage") 

コントローラのアクションメソッドで、モデルのプロパティを変更しました

objHeaderPage.HeaderName="Fill your Registeration details"; 

私がプロジェクトを実行すると、「あなたの登録詳細を入力してください」というテキストが表示されます。

テキストの値を変更するにはどうすればよいですか。つまり、resxファイルから読み込む必要があります。 私は既にApp_LocalResourcesフォルダにresxファイルを作成しました。 これはDisplay Attributeで行うことができると聞きましたが、どうやってやったらいいのですか?ディスプレイスペースの使用に関するご質問にお答えします。

答えて

1

This

私は私のViewModelのすべてのプロパティに対してDisplayAttribute使用していますが、カスタム「レコードは、エラーのために保存することができません...」のようなメッセージ、または類似した何かを処理する必要がある場合、あなたは単に

を使用することができます
objHeaderPage.HeaderName = Resources.ResourceMessageName; 

フレームワークは自動的に正しいカルチャを選択します。 必要に応じてリソースのDLLのみをデプロイできるように、自分のすべてのリソースを別のプロジェクトに入れたいと思っていますが、resxファイルをデプロイして本番マシンに直接編集することも考えられます。私はそれがあなたが好む/必要とするものまであると思います。

+0

ありがとう、私はdidntは私たちがコードの背後にこれを行うことができることを知っていた。あなたが言ったようにしました。これとは別に、ラベルとそれぞれの入力フィールドが表示される登録フォームも1つあります。 @ Html.LabelFor(mdl => mdl.Person.FullName)を使用しました。これは英語でラベルをレンダリングするので、このようなシナリオではリソースファイルから値を取得する方法は? – thinkmmk

+0

2つの方法があります。 Personのエンティティで直接DisplayAttributeを使用するか、文字列PersonName {get; set;}のようなプロパティを作成するviewmodelでいくつかの平坦化を行います。複雑なプロジェクトでは2番目の方が好きです。 – Iridio

関連する問題