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ただし、後続のページでテストすると(ユーザーは間違いなくログインしています)、それは== "";

これはユーザーの古い匿名プロファイルであり、新しく登録されたユーザー アカウントに関連付けられた新しいプロファイルではないと推測しています。

Profile_MigrateAnonymousGlobal.asax にメソッドを追加しようとしましたが(ここで提案されているように)、このコードはヒットしません。

タイトルを新しいユーザー アカウント プロファイルに保存するにはどうすればよいですか?

更新
ここにコードがあります

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 に答える