1

我有以下代码可以触发OnCreatedUser并且不会引发任何错误。Profile.Title在分配后检查时被设置为正确的值。

public void CreateUserForm_CreatedUser(object sender, EventArgs e)
{
    var ddlTitle = (DropDownList)CreateUserWizardStep1.ContentTemplateContainer.FindControl("Title");
    Profile.Title = ddlTitle.SelectedValue;
    Profile.Save();
}

但是,当我Profile.Title在后续页面上进行测试时(用户肯定已登录),它是== ""

我猜这是用户旧的匿名个人资料,而不是与他们新注册的用户帐户关联的新个人资料。

我尝试向我的 Global.asax 添加一个Profile_MigrateAnonymous方法(如此处所建议的),但这段代码没有被命中。

如何将标题保存到新用户帐户配置文件?

更新
这是代码

public void CreateUserForm_CreatedUser(object sender, EventArgs e)
{
     var ddlTitle = (DropDownList)CreateUserWizardStep1.ContentTemplateContainer.FindControl("Title");
     var emailTextBox = (TextBox)CreateUserWizardStep1.ContentTemplateContainer.FindControl("UserName");
     UserProfile profile = (UserProfile)ProfileBase.Create(emailTextBox.Text.Trim());
     profile.Title = ddlTitle.SelectedValue;
     profile.Save();
}
4

1 回答 1

2

我认为您是正确的,在调用该方法时用户仍然是匿名的。我不熟悉个人资料,但我认为您需要通过用户名查找个人资料,而不是依赖当前个人资料。

于 2010-12-10T17:06:11.687 回答