C# 以编程方式设置Umbraco True/False属性时,不会保留值

C# 以编程方式设置Umbraco True/False属性时,不会保留值,c#,umbraco,C#,Umbraco,我在使用Umbraco身份时遇到问题。尝试设置自定义TrueFalse属性时,将不会存储该值。我观察到,如果我通过CMS设置该值,该值将被报告为“1”表示真,或“0”表示假。但是,当我尝试通过编程设置值时,该值不会被保存 有人能看出我做错了什么吗 var member = UserManager.FindByEmail(model.Email); if (model.MarketingOptin) //Always true in this case { member.Memb

我在使用Umbraco身份时遇到问题。尝试设置自定义TrueFalse属性时,将不会存储该值。我观察到,如果我通过CMS设置该值,该值将被报告为“1”表示真,或“0”表示假。但是,当我尝试通过编程设置值时,该值不会被保存

有人能看出我做错了什么吗

var member = UserManager.FindByEmail(model.Email);

if (model.MarketingOptin) //Always true in this case
{
        member.MemberProperties.First(p => p.Alias == "marketingOptIn").Value = "1";
}
else
{
        member.MemberProperties.First(p => p.Alias == "marketingOptIn").Value = "0";
}
UserManager.Update(member);
请尝试以下操作:

var ms = Services.MemberService; 
var myMember = ms.GetByEmail("test@test.com");
myMember.SetValue("marketingOptIn", "1"); 

或者,如果1不起作用,请尝试使用“true”而不是1。

这听起来可能很愚蠢,但您可以尝试通过MemberService执行吗?只是想看看这是否有效。如果您在SurfaceController中,您可以这样做:var ms=Services.MemberService;var myMember=ms.GetByEmail(“test@test.com"); myMember.SetValue(“marketingOptIn”,“1”);或者,如果1不起作用,请尝试“true”而不是“1”。@Mikkel您的评论应该是完整的答案。这似乎是OP应该做的事情。@Harvey-谢谢。我将发布一个答案,然后我们将查看OP是否希望将其标记为:)