umbraco如何以编程方式更新多个前置值

umbraco如何以编程方式更新多个前置值,umbraco,member,multiple-choice,customproperty,Umbraco,Member,Multiple Choice,Customproperty,我有一个成员类型,它有一个自定义属性——让我们将其命名为数据类型复选框的books——因此可以进行多选 现在,我正尝试通过编程方式为书籍更新此成员的新值。在customxml中,它作为cdata提供,我将传递一个值作为 umbraco.cms.businesslogic.member.Member member = umbraco.cms.businesslogic.member.Member.GetMemberFromEmail(email); member.SetProperty("mem

我有一个成员类型,它有一个自定义属性——让我们将其命名为数据类型复选框的books——因此可以进行多选

现在,我正尝试通过编程方式为书籍更新此成员的新值。在customxml中,它作为cdata提供,我将传递一个值作为

umbraco.cms.businesslogic.member.Member member =  umbraco.cms.businesslogic.member.Member.GetMemberFromEmail(email);
member.SetProperty("memberBooks", booksValue);
member.Save();
其中“booksValue”是一个用逗号分隔的值字符串,因为它在contentXml中的显示方式是这样的

它不起作用


问题是-如何使用新的多个值更新成员属性/xml?

以下是您需要执行的操作:

umbraco.cms.businesslogic.member.Member member = umbraco.cms.businesslogic.member.Member.GetMemberFromEmail(email);
member.getProperty(“memberBooks”).Value = booksValue;
member.Save();

我希望这能奏效。我很久没有试过了,但我就是这样使用的。

我已经解决了这个问题

两者

工作

我只是传递了错误的值

在contentXml中,它们显示为值,但实际上我需要使用ID更新属性,因此如果数据类型为复选框列表,并且值如下所示:

一本书

2-booko

3-布基

然后在contentXml中,它显示为一个列表“book,booko,booki”,但要以编程方式更新它,我必须将“1,2,3”传递给属性

因此,它应该是:

member.SetProperty("memberBooks", "1,2,3");
而不是:

member.SetProperty("memberBooks", "book,booko,booki");

我希望它能帮助其他人解决同样的问题。

Hi@Ankur Ghelani,谢谢,但我试过了,它也不起作用。我很高兴你找到了解决方案。这很有帮助,但你仍然需要获得ID。我创建了扩展方法来帮助解决这个问题
member.SetProperty("memberBooks", "1,2,3");
member.SetProperty("memberBooks", "book,booko,booki");