0

我正在为以下问题寻找一个好的解决方案:

我有一个 ASP.NET MVC Web 应用程序,由我的几个客户使用。在应用程序中,客户可以登录、查看包含信息的多个页面并填写多个表格。这一切都很好。

但是,我想要的是在视图中显示不同的文本,具体取决于客户端的属性(在这种情况下为 A 类型)。这些文本可以是多语言的,用户可以在应用程序中更改语言。

我为此提出了几种解决方案,但我不确定最好的主意是什么。到目前为止,这些是我的想法:

在数据库中保存信息

在这种情况下,我会创建一个表(例如“ProgramTexts”),其中包含一个键、客户端的类型、语言和它自己的文本。然后,在我的控制器中,我将检索该视图中使用的键,将它们设置在 ViewModel 中并将该视图模型传递给视图。在视图中,我可以轻松地在 ViewModel 中显示给定变量的值。

我认为这对于小型站点非常有用,但是对于许多不同的控制器和视图来说似乎有点笨拙。我宁愿直接从视图中“调用”文本,但是从视图中调用数据库也好不到哪里去。

资源文件

由于本地化功能的内置,我的另一个想法是使用资源文件。但是,我不确定如何根据额外的变量(本例中的类型)从资源中检索变量。

有没有人对如何实现这一目标有其他想法?

4

1 回答 1

0

我会选择资源文件选项。是否可以为这些类型提供不同的资源文件?或者是否可以为不同的类型使用不同的变量名?

例如

Message1_TypeA
Message2_TypeB

ETC

然后,您可以使用一些聪明的技巧来根据类型读取正确的消息,也许是反射之类的聪明技巧。

另一种选择可能是这样分隔字符串

消息 1 = "A|B|C|D";

这样您就可以检索所有类型的消息,然后在您的代码中您可以检索当前类型的正确消息。我解释得好吗?我不认为我做到了。

于 2012-05-23T15:31:55.623 回答