Я пытаюсь написать страницу в asp.net для обновления пользовательского объекта из состояния сеанса, и я бегу в проблему сдачи объекта обратно в состояние сеансасостояния сеанса не будет обновлять
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;
public partial class UpdateAccount : System.Web.UI.Page
{
cAccount account;
protected void Page_Load(object sender, EventArgs e)
{
if (Session["account"] != null)
{
account = (cAccount)Session["account"];
lblID.Text = account.AccountNumber.ToString();
txtEmail.Text = account.Email;
txtFirstName.Text = account.FirstName;
txtLastName.Text = account.LastName;
lblArtist.Text = account.Artist.ToString();
if (account.CardNumber != "")
{
ddlCardType.SelectedValue = account.CardType;
txtNumber.Text = account.CardNumber;
ddlMonth.SelectedIndex = (account.ExpMonth - 1);
txtExpYear.Text = account.ExpYear.ToString();
}
else
{
ddlCardType.SelectedIndex = 0;
txtNumber.Text = "";
ddlMonth.SelectedIndex = 0;
txtExpYear.Text = "";
}
}
else
{
lblID.Text = "-1";
txtEmail.Text = "";
txtFirstName.Text = "";
txtLastName.Text = "";
lblArtist.Text = "";
ddlCardType.SelectedIndex = 0;
txtNumber.Text = "";
ddlMonth.SelectedIndex = 0;
txtExpYear.Text = "";
}
}
protected void btnUpdateUser_Click(object sender, EventArgs e)
{
if (txtOldPass.Text == account.Password)
{
lblOldPass.Text = "";
account.setDetails(txtEmail.Text, txtFirstName.Text, txtLastName.Text);
Session["account"] = account;
Response.Redirect("Accounts.aspx");
}
else
{
lblOldPass.Text = "Password Incorrect";
}
}
}
Этот это код, который я использую при загрузке, и при обновлении. Это единственное состояние сеанса пятен.
EDIT
Точная проблема я получаю обновленный объект не спасутся государству сессии. Старый остается на странице загрузки этой страницы и страницы, которую я использую для отображения объекта. Метод Form_Load работает одинаково в обоих.
Можете ли вы описать то, что ваша проблема на самом деле, пожалуйста? Это непонятно из вопроса, который вы опубликовали. Вы получаете исключение, информация об учетной записи не обновляется, как ожидалось? – KazR
@RMDan Вам нужно проверить 'if (Session [" account "]! = Null)' на каждом PostBack ?. Я думаю, вы должны проверить, является ли '! Page.IsPostback' перед вашим' if (Session ["account"]! = Null) ' –
@ r.piesnikowski Я пробовал это, но он вызывает разные ошибки (объект учетной записи недоступен к другим методам). Добавление этого на другую страницу не имеет значения. – RMDan