我正在使用此post中的核心服务创建新项目。但是,新创建的项的URI是tcm:0-0-0而不是实际的TCM URI。 Title属性是正确的(而不是New Component),但WebDav路径返回'New Component'。
获取新创建项目的URI的最佳方法是什么?
client.Create(newComponent, null);
string newItemUri = newComponent.Id; // returns tcm:0-0-0
string webDavUrl = newComponent.LocationInfo.WebDavUrl; // returns New%20Component
string title = newComponent.Title; // correct
答案 0 :(得分:4)
在http://blog.building-blocks.com/uploading-images-using-the-core-service-in-sdl-tridion-2011查看Ryan的代码。他使用client.Save获取保存的Component,从中他可以访问ID。
答案 1 :(得分:4)
Create方法的第二个参数是ReadOptions。它们用于指定如何回读项目。在您的示例中,您将其设置为null,这意味着您不会将其读回。您应该做的是设置ReadOptions并将项目读回分配给变量,如下所示:
newComponent = (ComponentData) client.Create(newComponent, new ReadOptions());