Umbraco-访问自定义成员属性



我目前在我的视图中有此代码用于测试目的,并且有效:

@if (Umbraco.MemberIsLoggedOn())
{
    var user = System.Web.Security.Membership.GetUser();

    if (user != null)
    {
        var m = ApplicationContext.Services.MemberService.GetByUsername(user.UserName);
        var testProperty = "";
        if (m.HasProperty("testProperty") && m.GetValue("testProperty") != null)
        {
            testProperty = m.GetValue("testProperty").ToString();
        }
        <p>User: @user.UserName is logged in</p>
        <p>Test property: @testProperty</p>
    }
}

我的问题是:这是最简单的方法吗?似乎不需要使用会员服务来获取另一种类型的用户(Imember而不是会员资格使用者(来访问自定义属性。但是我看不到会员使用者访问自定义属性的任何方法。我只是想念什么吗?还是您打算这样做?

编辑:根据 @Tim的答案,以下代码要好得多:

@if (Umbraco.MemberIsLoggedOn())
{
    var currentUser = Members.GetCurrentMember();
    if (currentUser != null)
    {
        var testProperty = currentUser.GetPropertyValue<string>("testProperty");
        <p>User: @currentUser.Name is logged in</p>
        <p>Test property: @testProperty</p>
    }
}

理论上应该可以做:

@Members.GetCurrentMember()

应该返回当前成员作为ipublyContent,然后您可以以与已发布的内容相同的方式访问成员属性,例如GetPropertyValue("propertyAlias")

最新更新