Umbraco获取博客文章的属性

时间:2016-09-07 09:17:29

标签: json umbraco umbraco7

我有Blog Repository,它包含博客帖子列表。我正在使用此代码访问所有博客帖子

var contentType = ApplicationContext.Services.ContentTypeService.GetContentType("BlogPost");

var blogPostList = ApplicationContext.Services.ContentService.GetContentOfContentType(contentType.Id);

现在我使用

访问自定义数据类型属性
foreach (var blog in blogPostList)
    {

        foreach ( var property in blog.Properties)
        {

        }

    }

现在我可以访问属性并获取其值但是对于少数属性我得到了json String,这对我没有用,因为我需要创建模型以正确地将json字符串解析为正确的json。

有没有办法在这种情况下使用GetPropertyValue或其他方式来获得格式正确的Json。

1 个答案:

答案 0 :(得分:2)

停在那儿!!!如果这是针对前端的,请不要使用ContentService。这是专门针对网站的后端,并且是非常密集的数据库。

对于所有前端代码,您应该使用IPublishedContent。这会查询内容缓存,并且速度更快,因为没有数据库访问。

如果你有一个UmbracoHelper(你将在Umbraco控制器中),你可以开箱即用,否则你需要启动助手。这是一个例子:

var umbracoHelper = new Umbraco.Web.UmbracoHelper(Umbraco.Web.UmbracoContext.Current);

var blogPosts = umbracoHelper. TypedContentAtXPath("//BlogPost [@isDoc]");

然后您将拥有一个页面列表,并且可以使用标准.GetPropertyValue方法从字段中获取值。请注意,这里的XPath查询不是非常有效,如果您愿意,可以使其更加具体。