2012-03-28 1 views
12

(言語)リソースファイルを使用するのCode52のASP.NET国際化を使用します。私のコントローラからかみそりビューからリソースファイルを参照する

私はこの

ViewBag.Message = Language.Index_Title; 

ようにしたい文字列を参照するには、(かみそり)ビューで直接値を参照することが可能ですか? このようなもの:@Resources.Language.Index_Title;

+0

私はリソースファイルのプロパティを変更すると、すべての問題が解決された: ビルドアクション:出力ディレクトリに埋め込まれたリソース コピー: –

+0

をコピーしませんが、私はビューの変更をすぐに反映されませんことがわかりました。リソースファイルを変更/名前変更/移動した後、ビューを閉じて再度開きます。 –

答えて

3

@ ViewContext.HttpContext.GetGlobalResourceObject(classKey、resourceKey)を試してください。これが役に立ちますようにお願いします

10

あなたのweb.configには "Pages"セクションがあります。そこにResource名前空間を追加する必要があります。 "using"を使ってすべてのページで宣言する必要はありません。 。

<pages> 
    <namespaces> 
    <add namespace="System.Web.Helpers" /> 
    <add namespace="System.Web.Mvc" /> 
    <add namespace="System.Web.Mvc.Ajax" /> 
    <add namespace="System.Web.Mvc.Html" /> 
    <add namespace="System.Web.Routing" /> 
    <add namespace="System.Web.WebPages" /> 
    <add namespace="Your.Resources.Namespace" /> <!--ADD THIS LINE--> 
    </namespaces> 
</pages> 

次に、あなたが使用ビューあなたのカミソリで、あなたのリソースファイルは、「言語」と呼ばれていると仮定すると:

@Language.Index_Title 
+0

申し訳ありませんが、これは私のためには機能しませんが、インテリセンスはそれが正しいことを示しています... –

+1

@ChristerKolterjahn、これは私がプロジェクトでこれをしたときに従ったチュートリアルです:http://afana.me/post /aspnet-mvc-internationalization-part-2.aspx – Romias

+2

これは、ルートweb.configではなく、ビューweb.configに追加する必要があると考えています。 –

4

カスタムツールのプロパティでリソース・ファイルを変更し、あなたが「値を追加する必要がありますPublicResXFileCodeGenerator "と同様に、リソースファイルを使用することもできます。

関連する問題