0

そのため、ログイン システムを作成しましたが、ユーザーが自分の情報を更新できないようにしたいと考えています。このコードは機能すると思っていましたが、機能しませんでした。

    public partial class Account_Update : System.Web.UI.Page
 {
 protected void Page_Load(object sender, EventArgs e)
{

    MembershipUser usr = Membership.GetUser();
    if (usr.IsApproved == false)
    {
        Response.Redirect("~/Login.aspx");
    }
    var p = Profile.GetProfile(usr.UserName);
    /* Displays all current profile information once the page loads */
    FirstName.Text = p.fName;
    LastName.Text = p.lName;
    Address.Text = p.Address;
    Email.Text = usr.Email;
    Company.Text = p.Company;
}
/* Simple button to take you to the home screen */
protected void Button2_Click(object sender, EventArgs e)
{
    Response.Redirect("~/default.aspx");
}

protected void UpdateButton_Click(object sender, EventArgs e)
{
    MembershipUser usr = Membership.GetUser();
    var p = Profile.GetProfile(usr.UserName);
    /* Update all information that the user has changed */
    p.fName = FirstName.Text;
    p.Save();
    p.lName = LastName.Text;
    p.Save();
    p.Address = Address.Text;
    p.Save();
    usr.Email = Email.Text;
    Membership.UpdateUser(usr);
    p.Company = Company.Text;
    p.Save();
    Success.Text = "User Information has been updated";
    /* Redisplaying the updated user information */
    FirstName.Text = p.fName;
    LastName.Text = p.lName;
    Address.Text = p.Address;
    Email.Text = usr.Email;
    Company.Text = p.Company;
  }
}

問題は、テキストボックスでテキストを変更しても、元のテキストボックスにあったものから変更されていないようです。したがって、最初にユーザーの名前が Bob で、更新ボタンを押したときに Robert に変更した場合、Robert に変更されません。これは簡単な修正のように思えますが、私はちょっと迷っています。主な質問を要約すると、ユーザー情報を、ユーザーがテキスト ボックスに入力した新しいテキストに更新する方法です。

4

1 に答える 1

1

!Ispostbackページの読み込み時に配置

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
    MembershipUser usr = Membership.GetUser();
    if (usr.IsApproved == false)
    {
        Response.Redirect("~/Login.aspx");
    }
    var p = Profile.GetProfile(usr.UserName);
    /* Displays all current profile information once the page loads */
    FirstName.Text = p.fName;
    LastName.Text = p.lName;
    Address.Text = p.Address;
      Email.Text = usr.Email;
      Company.Text = p.Company;
   }
}

これを使用しない場合は、情報がサーバーに送信されるときに必ず olds 値が取得されます。

乾杯。

于 2013-06-18T23:43:28.367 に答える