繁体   English   中英

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

[英]2sxc DNN - How to get name of content type field in cshtml?

我正在2sxc应用程序上工作,它将以多种语言使用。 有很多内容类型字段,其中包含标签(名称)和值(内容)。 我知道如何对值(内容)使用多语言选项,并且效果很好。 我想知道有什么方法可以在Razor视图中为内容类型字段转换标签。 有一个选项可以使用2sxc后端翻译该名称,但是我找不到方法在我的视图(cshtml文件)中写入该名称。

最好的方法是检查类型。 因此,基本上每个实体在使用AsEntity(...).Type都会为您提供一个类型对象。 它具有AttributeDefinition类型的AttributeDefinition ,它具有一个Name (正式名称)和Metadata。

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

这里的伪代码:

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");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM