C# 在MVC视图中显示变量文本

C# 在MVC视图中显示变量文本,c#,asp.net-mvc,resx,C#,Asp.net Mvc,Resx,我正在为以下问题寻找一个好的解决方案: 我有一个ASP.NET MVC Web应用程序,供我的几个客户端使用。在应用程序中,客户端可以登录、查看包含信息的多个页面以及填写多个表单。这一切都很好 但是,我想在视图中显示不同的文本,这取决于客户端的属性(本例中的类型)。这些文本可以是多语言的,用户可以在应用程序中更改语言 我已经想出了几种解决办法,但我不确定最好的办法是什么。以下是我目前的想法: 在数据库中保存信息 在本例中,我将创建一个表(例如“ProgramText”),其中包含一个键、客户机的

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

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

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

我已经想出了几种解决办法,但我不确定最好的办法是什么。以下是我目前的想法:

在数据库中保存信息

在本例中,我将创建一个表(例如“ProgramText”),其中包含一个键、客户机的类型、语言及其本身的文本。在我的控制器中,我将检索该视图中使用的键,在ViewModel中设置它们,并将该ViewModel传递给视图。在视图中,我可以轻松地在ViewModel中显示给定变量的值

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

资源文件

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


有人对如何实现这一点有其他想法吗?

我会选择资源文件选项。这些类型是否可能有不同的资源文件?或者,对于不同的类型,是否可能有不同的变量名

乙二醇

然后,您可以根据类型使用一些巧妙的技巧来阅读正确的消息,例如反射之类的巧妙技巧

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

Message1=“A | B | C | D”


这样,您可以检索所有类型的消息,然后在代码中检索当前类型的正确消息。我解释得好吗?我想我没有。

我的投票是支持资源文件,因为应用程序的性能更好。我最终选择了资源文件选项。我还发现了创建自定义资源提供程序的能力,目前我正在测试它是如何工作的。
Message1_TypeA
Message2_TypeB