在资源文件中存储html标记的最佳实践/技巧

vij*_*ter 10 html c# asp.net-mvc resources

我有以下情况:假设我必须以下列格式显示数据.

I am 20 years old.我需要数字20以粗体显示.

我从像这样的资源文件中获取此字符串

string.Format(HttpContext.GetGlobalResourceObject("ResourceFile","Key"),age);
Run Code Online (Sandbox Code Playgroud)

我应该考虑添加标签<b></b>资源文件中?这被认为是"最佳做法"吗?任何人都可以提供有关本地化的有用链接吗?

Rob*_*nik 8

不要存储改变资源视觉风格的标签

对于代码/数据/表示分离目的,我建议您不要在资源文件中存储标记.它将使维护更加困难(通过在aspx/ascx文件中以及在资源中使用标签,甚至可能在DB中)

您应该遵循关注点分离模式并将事物分开.

Key        Value
"UserAge"  "It seems you are {0} year(s) old."
Run Code Online (Sandbox Code Playgroud)

一些宽松的限制可能有所帮助
但是当使用一些嵌套标记时,最安全的做法是拥有不提供任何样式本身的标签.在你的情况下,我<span>最多使用标签(因为它是一个内联样式,这正是你需要的).CSS最终将定义它的视觉表示.

Key        Value
"UserAge"  "It seems you are <span>{0}</span> year(s) old."
Run Code Online (Sandbox Code Playgroud)

但你应该理解其含义.这样做可能仍然比没有标签更糟糕.想象一下当您更改表示层时会发生什么.让我们说服务或Windows桌面应用程序.像这样的标签<span>在这种情况下没有意义.它们可以省略,但为什么你会把它们放在第一位呢.