【问题标题】:Value is not persisted when setting Umbraco True/False property programatically以编程方式设置 Umbraco True/False 属性时,值不会保留
【发布时间】:2018-11-30 23:10:46
【问题描述】:

我在使用 Umbraco Identity 时遇到了问题。尝试设置自定义 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);

【问题讨论】:

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

标签: c# umbraco


【解决方案1】:

尝试以下方法:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 2019-06-25
    • 2021-06-22
    • 1970-01-01
    相关资源
    最近更新 更多