2sxc DNN - 如何在cshtml中获取内容类型字段的名称?

时间:2018-04-11 14:51:45

标签: dotnetnuke 2sxc cudnn

我正在研究2sxc应用程序,它将用于多种语言。有许多内容类型字段具有标签(名称)和值(内容)。我知道如何使用多语言选项的值(内容),它的工作非常好。 我想知道是否有任何方法可以在Razor视图中翻译内容类型字段的标签。可以选择使用2sxc后端来翻译这些名称,但我找不到如何在我的视图中编写该文件(cshtml文件)。

1 个答案:

答案 0 :(得分:0)

最好的方法是检查类型。所以基本上每个实体在使用AsEntity(...).Type时都会给你一个类型对象。它具有AttributeDefinition类型的属性,其具有Name - 官方名称 - 和元数据。

对于您想要做的事情,您是否想要选择正确名称的属性,然后在元数据中查找将为您提供翻译名称的项目。这有点复杂,但直截了当。

这里是伪代码:

function getTranslatedName(IEntity entity, string field)
{
  var attribs = entity.Attributes.First(a => a.Name == field);
  var basicMeta = attrib.Metadata
            .FirstOrDefault(d => d.Type.StaticName == "@All");
  return basicMeta?.GetBestValue("Name");
}