0

データベースで ASP.NET ページのローカリゼーションを使用しています。

すべてが正常に機能しており、ViewBag に言語辞書があり、ViewModel の DisplayName を除いて、すべてに対して機能しています。

これは、ビューで翻訳を使用する方法です。

namespace Helpers
{

public static class LocalizationHelper
{
    /// <summary> 
    /// Returns the translation for the term
    /// </summary> 
    public static string Translate(this HtmlHelper helper, Term term)
    {
        Dictionary<string, string> dic = helper.ViewContext.Controller.ViewBag.LangDict;
        Dictionary<string, string> fallbackDic = helper.ViewContext.Controller.ViewBag.StandardLangDict;

        string trans = "";
        if (dic.TryGetValue(term.ToString(), out trans))
            return trans;
        else if (fallbackDic.TryGetValue(term.ToString(), out trans))
        {
            return trans;
            //exception trans not available for this lang
            //return fallback language
        }
        else
            return "Translation not set";
    }   
}

しかし、HTMLHelper 属性を渡すことができないため、これを ViewModel に使用することはできません。そして、次のような別のメソッドを書くことにした場合:

public static string Translate(Term term)

Viewbag はもう機能しません。用語は列挙型です。

Viewbag から ViewModel にデータを取得する方法がわかりません。

4

0 に答える 0