2016-04-14 14 views
0

ASP.NET MVCプロジェクトで多言語構造を使用したいと思います。私は2つの言語しかありません。だから私は2つの言語(例:Header_ENとHeader_TR)の私のDBに2つの文字列フィールドを保持します。ASP.NET MVCの動的モデルバインディング多言語のための剃刀

自分の現在の言語値を.resxファイルから動的に取得します(例:ENまたはTR)。しかし私は私の見解ではダイナミックモデルを使わなければならない。通常、私は一つの言語のためにこれを使用しています:

@model MyProject.Models.tTextTable 

    <div class="TextDetailContainer"> 
     @Html.Raw(Model.MyTextDetail_EN) 
    </div> 

そして、私はそのような多言語何かのために動的モデルの値を使用したい:

@model MyProject.Models.tTextTable 

    <div class="TextDetailContainer"> 
     @Html.Raw(Model.("MyTextDetail_" + Resources.Language.CurrentLanguage)) 
    </div> 

このロジックでこれを行うために可能な方法はありますまたはRazorで動的モデルを作成する別の方法がありますか?お使いのモデルがある場合

+0

同じモデルにバインドすることはできませんが、現在のカルチャに基づいてモデルを埋め込むことはできませんか? – PhilDulac

答えて

2

dynamicは、あなたがIDictionary<string, object>にキャストし、そこから値を取得することができます

var dictionary = (IDictionary<string, object>)model; 
var text = dictionary ["MyTextDetail_" + Resources.Language.CurrentLanguage] as string; 

あなたはおそらく一つの特性MyTextDetailを持っており、ローカライズされた値を適切なようにコントローラで設定する必要がありますが。

関連する問題