Umbraco 获取博客的属性 Post
Umbraco Get properties of a Blog Post
我有博客存储库,它包含博客文章列表。我正在使用此代码访问所有博客文章
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 字符串,这对我没有用,因为我需要创建模型来正确地将 json 字符串解析为正确的 json.
在这种情况下是否有任何方法可以使用 GetPropertyValue 或其他一些方法来获得正确的格式Json。
到此为止!!!如果这是用于前端,请不要使用 ContentService。这是专门针对站点后端的,并且非常需要数据库。
对于所有前端代码,您应该使用 IPublishedContent。这会查询内容缓存,并且速度更快,因为没有数据库访问。
如果您有 UmbracoHelper(您将在 Umbraco 控制器中使用),您可以开箱即用地访问它,否则您需要启动一个助手。这是一个例子:
var umbracoHelper = new Umbraco.Web.UmbracoHelper(Umbraco.Web.UmbracoContext.Current);
var blogPosts = umbracoHelper. TypedContentAtXPath("//BlogPost [@isDoc]");
您将获得一个页面列表,并可以使用标准的 .GetPropertyValue 方法从字段中获取值。请注意,此处的 XPath 查询效率不高,如果您愿意,可以使其更加具体。
我有博客存储库,它包含博客文章列表。我正在使用此代码访问所有博客文章
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 字符串,这对我没有用,因为我需要创建模型来正确地将 json 字符串解析为正确的 json.
在这种情况下是否有任何方法可以使用 GetPropertyValue 或其他一些方法来获得正确的格式Json。
到此为止!!!如果这是用于前端,请不要使用 ContentService。这是专门针对站点后端的,并且非常需要数据库。
对于所有前端代码,您应该使用 IPublishedContent。这会查询内容缓存,并且速度更快,因为没有数据库访问。
如果您有 UmbracoHelper(您将在 Umbraco 控制器中使用),您可以开箱即用地访问它,否则您需要启动一个助手。这是一个例子:
var umbracoHelper = new Umbraco.Web.UmbracoHelper(Umbraco.Web.UmbracoContext.Current);
var blogPosts = umbracoHelper. TypedContentAtXPath("//BlogPost [@isDoc]");
您将获得一个页面列表,并可以使用标准的 .GetPropertyValue 方法从字段中获取值。请注意,此处的 XPath 查询效率不高,如果您愿意,可以使其更加具体。