从ViewBag获取Model的DisplayName

时间:2013-06-12 16:19:31

标签: asp.net-mvc-4 dictionary

我正在使用带有数据库的ASP.NET页面的本地化。

一切正常,语言词典在ViewBag中,它只适用于所有内容,但ViewModels中的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";
    }   
}

但我无法将此用于ViewModel,因为我无法传递HTMLHelper属性。 如果我决定写另一种方法,如:

public static string Translate(Term term)

Viewbag再也无法工作了。术语是枚举。

现在我不知道如何将Viewbag中的数据导入ViewModel。

0 个答案:

没有答案