在 MVC 视图中显示可变文本

本文关键字:文本 显示 MVC 视图 | 更新日期: 2023-09-27 18:35:02

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

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

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

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

在数据库中保存信息

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

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

资源文件

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

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

在 MVC 视图中显示可变文本

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

例如

Message1_TypeA
Message2_TypeB

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

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

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

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