Umbraco 7.1.8 - 使用内容类型选择器类型作为宏参数

时间:2014-10-21 13:44:35

标签: asp.net-mvc razor umbraco umbraco7

所以我试图利用内容类型选择器作为宏的参数。将宏添加到页面时,我选择别名为“myType”的内容类型。

如何在宏的局部视图中检索文档类型的别名?

目前,我正在使用:

var type = Model.MacroParameters["myType"];

,它给出了文档类型的ID。我可以使用ID来检索文档类型的别名吗?

使用时:

@Umbraco.Content(type)

它返回一个空的Content对象。

2 个答案:

答案 0 :(得分:2)

我找到了一个使用内容类型选择器数据类型检索文档类型别名的解决方案:

//get current content type service
var myContentTypeService = ApplicationContext.Current.Services.ContentTypeService;

//get ID of selected content type
int typeID = Convert.ToInt32(Model.MacroParameters["myType"].ToString());

//get content type object using ID
IContentType myContentType = myContentTypeService.GetContentType(typeID);

//retrieve alias
String alias = myContentType.Alias;

答案 1 :(得分:-1)

您的方法使用内容服务,该服务会访问数据库,而您在前端不需要!在您的部分中,请改用以下内容:

//get content
var page = Umbraco.TypedContent(Convert.ToInt32(Model.Macroparameters["myType"]));
//get Doctype Alias
var alias = page.DocumentTypeAlias

作为一般规则,您应该避免使用内容服务进行前端显示,而是使用Umbraco助手的TypedContent方法代替!希望有所帮助:)