资源(resx)自定义助手

Posted

技术标签:

【中文标题】资源(resx)自定义助手【英文标题】:Resource(resx) Custom helper 【发布时间】:2012-09-04 08:36:19 【问题描述】:

我是第一次发贴的长期听众,我真的很想了解您的一些本地化架构,并最终获得对我们方法的反馈(如下)。

我想要一些关于我们正在考虑使用资源文件的方法的建议。我们正在使用 MVC 3.0 并且有一个网站项目和一个资源项目。在资源项目中,我们有一个模仿网站结构的结构,例如控制器 -> 视图 -> 文件

我们通过在视图/控件顶部导入资源命名空间来引用视图中的 resx 文件,例如<%@ Import Namespace="MyAppResources.Resources.Website.Home" %> 然后使用 <%= Index.SomeText %> 引用我们需要的 resx 值,其中 index 是资源文件的名称。

我们正在考虑并希望得到一些建议,而不是使用这种方法,而是将资源 resx 结构划分为网站区域并使用帮助程序,例如LocalizationHelper.GetValue("Home", "SomeText") 其中“Home”是资源文件的名称,"SomeText" 是该 resx 文件中的值。我们这样做的原因是不必为我们所做的每个小副本更改都继续编译资源项目(因为我们可能需要对我们部署的环境进行快速修复),而且它可能是网站中最常用的助手项目,所以这将使事情保持简短和一致。本地化助手还将值存储在缓存字典中,因此如果一个值被多次使用,它会从缓存中检索它。

有人知道我们没有想到的更好的方法或改进吗?

【问题讨论】:

【参考方案1】:

我建议使用数据库而不是 RESX 文件来存储本地化值。

使用数据库会阻止您需要进行任何代码/文件部署来更新您的应用程序。此外,您可以构建一个用于修改本地化值的 GUI 界面(这对于网站管理员/编辑来说是一个很棒的功能)。

【讨论】:

以上是关于资源(resx)自定义助手的主要内容,如果未能解决你的问题,请参考以下文章

创建自定义助手类?

如何在自定义助手中访问排毒元素匹配器?

jQuery UI Draggable 的自定义助手

如何将模型传递给剃须刀页面自定义助手

codeigniter 中的自定义助手

Laravel 5.6 中的自定义助手