2sxc DNN技术问询:如何在CSHTML中获取内容类型字段的多语言标签?
在2sxc Razor视图中获取字段标签的多语言翻译
嘿,我正好折腾过这个需求!既然你已经在2sxc后端搞定了字段标签的多语言配置,在Razor视图里调用其实很简单,给你分享几种常用的方法:
方法1:通过ContentType对象直接获取
先拿到目标内容类型的实例,再通过字段名获取对应语言的标签——2sxc会自动识别当前站点的语言上下文,返回匹配的翻译:
// 替换成你的内容类型名称,比如"BlogPost" var contentType = App.Data.ContentTypes.Get("你的内容类型名称"); // 替换成你的字段名称,比如"Description" var fieldTranslatedLabel = contentType.Labels["你的字段名称"]; // 在视图中输出标签 @fieldTranslatedLabel
方法2:从内容项的字段元数据获取
如果你已经拿到了具体的内容项对象(比如从App.Data.Get(...)获取的),可以直接从字段的元数据里取标签:
// 假设myContentItem是你获取到的内容项实例 var targetField = myContentItem.Type.Fields["你的字段名称"]; var translatedLabel = targetField.Label; @translatedLabel
方法3:用DynamicEntity的扩展方法(最简洁)
如果你的视图里用的是2sxc常用的DynamicEntity动态对象,直接调用FieldLabel()扩展方法就行,一步到位:
// 假设dynEntity是你的DynamicEntity对象(比如@ContentItem就是这类对象) @dynEntity.FieldLabel("你的字段名称")
小提示
- 确保你在后端配置的是内容类型字段的标签翻译(不是内容值的翻译)——也就是在内容类型编辑界面中,给每个字段的「标签」字段添加了多语言条目。
- 站点的语言切换功能要正常,2sxc会自动读取当前请求的语言,无需额外手动指定。
内容的提问来源于stack exchange,提问作者BrankoSegedin
相关产品推荐
相关产品推荐

