我有一个名为Store
的自定义内容类型,其中包含Brands
分类字段。 Store
可以有多个Brands
与之关联。
我的任务是构建一个导入/导出例程,允许用户上传包含新Stores
及其关联的Brands
的CSV文件。
我可以创建商店其他字段,但是不能弄清楚如何设置分类字段?
有人可以告诉我如何访问自定义内容类型的分类法字段吗?
提前致谢。
答案 0 :(得分:0)
好的(正如Bertrand建议的那样),使用导入/导出功能可能是一个更好的方法,但作为Orchard的相对菜鸟,我没有时间花时间去看它并且不能#39找不到好的教程。
以下是另一种方法,使用TaxonomyService以编程方式将条款分配给ContentItem。
首先,将ContentManager
和TaxonomyService
注入构造函数...
private ITaxonomyService _taxonomyService;
private IContentManager _contentManager;
public MyAdminController(IContentManager contentManager, ITaxonomyService taxonomyService)
{
_contentManager = contentManager;
_taxonomyService = taxonomyService;
}
创建您的ContentItem&设置标题
var item = _contentManager.New("MyContentType");
item.As<TitlePart>().Title = "My New Item";
_contentManager.Create(item);
现在我们有一个可以使用的ContentItem。是时候获得分类学了找到你的学期...
var taxonomy = _taxonomyService.GetTaxonomyByName("Taxonomy Name");
var termPart = _taxonomyService.GetTermByName(taxonomy.Id, "Term Name");
将条款添加到类型TermPart
...
List<TermPart> terms = new List<TermPart>();
terms.Add(termPart);
最后,调用UpdateTerms
,传入ContentItem,要分配的术语以及要更新的ContentItem上的字段名称......
_taxonomyService.UpdateTerms(item, terms.AsEnumerable<TermPart>(), "My Field");
希望这有助于某人。可能是我下次回合! :)