加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC数据库本地化

发布时间:2020-12-16 07:45:52 所属栏目:asp.Net 来源:网络整理
导读:我正在开发一个多语言的企业网站,我想将本地化存储在数据库中. 我已经阅读了以下非常好的文章,但我个人认为这是一个开销,我可以轻松实现同样的目标: Extending the ASP.NET 2.0 Resource-Provider Model 我已经设置了一些基础,但我不确定我的方法是否正常.
我正在开发一个多语言的企业网站,我想将本地化存储在数据库中.

我已经阅读了以下非常好的文章,但我个人认为这是一个开销,我可以轻松实现同样的目标:

Extending the ASP.NET 2.0 Resource-Provider Model

我已经设置了一些基础,但我不确定我的方法是否正常.基本上我已经创建了一个与DI寄存器的服务.

public interface ILocalizedStringProvider
{
    string GetLocalizedString(string key);

    string GetLocalizedString(string key,string deafultValue);
}

我也创建了一个像这样的Html帮助器

public static MvcHtmlString LocalizedString(this HtmlHelper helper,string key,string defaultValue)
    {            
        if (string.IsNullOrEmpty(defaultValue)) return new MvcHtmlString("");
        if (string.IsNullOrEmpty(key)) return new MvcHtmlString(defaultValue);

        ILocalizedStringProvider localizedStringProvider = DependencyResolver.Current.GetService<ILocalizedStringProvider>();

        if (localizedStringProvider == null)
        {
            return MvcHtmlString.Create(defaultValue);
        }

        string val = localizedStringProvider.GetLocalizedString(key,defaultValue);

        if (string.IsNullOrEmpty(val))
        {
            return MvcHtmlString.Create(defaultValue);
        }

        return MvcHtmlString.Create(val);
    }

然后只需从视图中调用帮助程序.

首先,我想知道这种方法是否良好,如果不是反模式.

其次我关注的是这一行:

ILocalizedStringProvider localizedStringProvider = DependencyResolver.Current.GetService<ILocalizedStringProvider>();

使用构造函数注入来解析控制器中的服务ILocalizedStringProvider是否更好?让控制器使用本地化填充ViewBag?

谢谢!

解决方法

您可以使用我的Griffin.MvcContrib项目.它包含一个随时可用的MS SqlServer实现,用于在数据库中存储本地化.

简介:http://www.codeproject.com/Articles/352583/Localization-in-ASP-NET-MVC-with-Griffin-MvcContri

管理

还有一个管理区域可用于管理本地化:

SQL Server安装程序

https://github.com/jgauffin/griffin.mvccontrib/wiki/SqlServer

源代码

该项目可在github:https://github.com/jgauffin/griffin.mvccontrib获得

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读