如何从 sitecore Webservice 修改新创建的 Item/Page 的字段值
Posted
技术标签:
【中文标题】如何从 sitecore Webservice 修改新创建的 Item/Page 的字段值【英文标题】:How to modify the field values of newly created Item/Page from sitecore Webservice 【发布时间】:2014-09-26 16:18:31 【问题描述】:通过使用 Sitecore 网络服务,我创建了一个新的页面项目,如下所示。
var scClient = new VisualSitecoreServiceSoapClient();
// another code
var xmlNode = scClient.AddFromTemplate(parentId, pagetemplateId,itemName,database,credentials)
我不能使用数据库项目,只能使用网络服务。
从 xmlNode 我得到新创建的 GUID/Id。如何仅从 Web 服务编辑新创建的 Item 的字段?
【问题讨论】:
你可能想看看这里的 InsertXML 方法 - sdn.sitecore.net/upload/sitecore6/65/… 【参考方案1】:您可以像这样使用Save()
方法:
string itemId = // id from AddFromTemplate() xmlNode
string fieldId = "some-id-of-the-field"; // id of the field
XDocument fieldXml = new XDocument(
new XElement("sitecore",
new XElement("field",
new XAttribute("itemid", itemId),
new XAttribute("language", "en"),
new XAttribute("version", 1),
new XAttribute("fieldid", fieldId),
new XElement("value", "new value of the field")
)
)
);
XElement fieldResponse = scClient.Save(fieldXml, "web", credentials);
编辑:
回复您的评论:不,您不能使用字段名称代替字段 ID。您仍然可以使用VisualSitecoreServiceSoapClient
中公开的GetItemFields
方法列出项目的所有字段,然后确定具有给定名称的字段的 id 是什么:
public XmlDocument GetItemFields(string id, string language, string version, bool allFields, string databaseName, Credentials credentials)
【讨论】:
感谢 Maras,我可以使用您的代码修改该字段。有没有办法可以使用字段名称而不是字段 ID 进行修改? 您不能使用字段名称。查看更新的答案和解释 讲道理马拉斯,我会按照你的建议去做。再次感谢您的帮助。以上是关于如何从 sitecore Webservice 修改新创建的 Item/Page 的字段值的主要内容,如果未能解决你的问题,请参考以下文章