【问题标题】:Pre-process MVC Razor File For Multi-Lingual Language Strings?预处理多语言语言字符串的 MVC Razor 文件?
【发布时间】:2013-08-20 05:40:15
【问题描述】:

在我的应用程序中,我们有存储在自定义表中的多语言语言字符串,因为用户可以通过 UI 编辑、删除、导入新语言等...

目前,我正在做的是在每个请求的开头。我要去获取当前所选语言的所有语言字符串(来自我们的数据库)并将它们粘贴到字典中。

然后我有一个 Html Helper 扩展方法,我在 razor 视图中使用它(见下文),它在我在请求开始时得到的字典中找到,根据助手中提供的键提取正确的语言.

Html.LanguageString("MyLanguage.KeyHere")

现在这工作正常。但是,随着应用程序越来越大。我们得到越来越多的语言字符串。现在这不是问题,因为它仍然非常快,因为只有大约 200 个字符串可以获取。

但这也意味着我得到了所有这些,即使页面上有一个。理想情况下,我想要一种预先处理 LanguageString("") 并进行查询以获取请求开始时所需的方法?或者也许是我自己的基于 linq 的语言,可以处理并产生更高效的调用。

我正在寻找有关如何执行此操作的建议。因为我希望应用程序尽可能高效。任何建议、帮助、提示都会得到极大的欢迎。谢谢。

【问题讨论】:

  • 我不知道该链接与我的问题有什么关系?

标签: c# asp.net-mvc asp.net-mvc-3 razor


【解决方案1】:

我建议在应用程序的基础上缓存语言字符串,而不是为每个请求获取它们。例如,这可以通过维护静态字典并仅在用户对这些字符串进行更改时使缓存无效来实现。这将使您的应用程序更具响应性,并使您免于实施(恕我直言)更复杂且不一定有效的按需加载此数据的技术。

作为旁注,我要补充以下几点:当这类问题出现时解决(而不是修复未损坏的问题)并专注于更重要的事情通常是一种很好的做法。我完全同意必须始终考虑给定解决方案的性能影响,我只是说过早的优化并不总是一个好主意。

【讨论】:

  • 感谢您的评论。如果用户更改它们,我正在讨论在应用程序启动时加载和按需更新。我可能会将其视为一种选择。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-28
  • 2014-08-05
  • 1970-01-01
  • 2021-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多