【问题标题】:How get UI culture of application in Attribute ASP.NET MVC如何在属性 ASP.NET MVC 中获取应用程序的 UI 文化
【发布时间】:2015-12-14 00:22:13
【问题描述】:

我有这个资源本地化属性:

    public class LocalizedDisplayNameAttribute : DisplayNameAttribute
{
    public LocalizedDisplayNameAttribute(string resourceId)
        : base(GetMessageFromResource(resourceId))
    {

    }

    private static string GetMessageFromResource(string resourceId)
    {
        var ioc = Abp.Dependency.IocManager.Instance;
        var localizationManager = ioc.IocContainer.Resolve<ILocalizationManager>();


        return localizationManager.GetString(MMMConsts.LocalizationSourceName, resourceId, Thread.CurrentThread.CurrentUICulture);}

当我在 WEB 应用程序中切换语言并对此进行调试时,在 Thread.CurrentThread.CurrentUICulture 中我仍然是相同的值。

但是在 Razor 视图文化中何时执行此操作已正确更改。

如何在我的属性类中设置 currencu 文化,我需要它来从资源中加载多语言文本。

模型属性在应用启动之前初始化?感谢您的帮助!

通过此代码解决:

        public LocalizedDisplayNameAttribute(string resourceKey)
        : base(resourceKey)
    {
        ResourceKey = resourceKey;
    }

    public string ResourceKey { get; set; }

    public override string DisplayName
    {
        get
        {
            string value = null;
            var ioc = Abp.Dependency.IocManager.Instance;
            var localizationManager = ioc.IocContainer.Resolve<ILocalizationManager>();
            value = localizationManager.GetString(MMConsts.LocalizationSourceName, ResourceKey, Thread.CurrentThread.CurrentUICulture);

            return value;
        }
    }

【问题讨论】:

  • 请将答案作为答案发布,请勿编辑问题以发布答案。它使问题和答案对未来的读者更有用。

标签: c# asp.net-mvc


【解决方案1】:

通过此代码解决:

  public LocalizedDisplayNameAttribute(string resourceKey)
        : base(resourceKey)
    {
    ResourceKey = resourceKey;
}

public string ResourceKey { get; set; }

public override string DisplayName
{
    get
    {
        string value = null;
        var ioc = Abp.Dependency.IocManager.Instance;
        var localizationManager = ioc.IocContainer.Resolve<ILocalizationManager>();
        value = localizationManager.GetString(MMConsts.LocalizationSourceName, ResourceKey, Thread.CurrentThread.CurrentUICulture);

        return value;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-24
    • 2011-02-24
    • 2020-10-16
    • 1970-01-01
    • 2017-09-24
    • 2010-12-06
    • 2016-03-24
    • 1970-01-01
    相关资源
    最近更新 更多