Я работаю над приложением 2sxc, которое будет использоваться на нескольких языках. Есть много полей типа контента, которые имеют метки (имена) и значения (контент). Я знаю, как использовать многоязычные параметры для значений (контента), и это работает довольно хорошо. Мне интересно, есть ли способ получить перевод меток для полей типа контента в представлениях Razor. Есть возможность перевести эти имена с помощью бэкэнда 2sxc, но я не могу найти способ записать это в моих представлениях (файлы cshtml).
2sxc DNN - Как получить имя поля типа контента в cshtml?
Ответы (1)
Лучший способ сделать это - проверить Тип. Таким образом, в основном каждая сущность при использовании 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");
}
person
iJungleBoy
schedule
19.04.2018