Хранение объектов Class в Session и отображение на другой веб-форме asp.net - PullRequest
0 голосов
/ 13 февраля 2019

Используя asp.net, я пытаюсь получить входные данные текстового поля, инкапсулировать эти данные в класс C #, сохранить объект класса в сеансе и отобразить эти данные в другой веб-форме.Я думаю, что мне нужно установить свойства в классе Customer C # и затем сохранить весь объект класса в сеансе, но, возможно, я ошибаюсь.

Вот часть моего кода asp.netэто содержит текстовые поля:

  <asp:Label ID="lblName" runat="server" Text="Name: "></asp:Label>
                <br />
                <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
                <br /><br />
                <asp:Label ID="lblAddress" runat="server" Text="Address: "></asp:Label>
                <br />
                <asp:TextBox ID="txtAddress" runat="server"></asp:TextBox>
                <br /><br />
                <asp:Label ID="lblPhoneNumber" runat="server" Text="Phone Number: "></asp:Label>
                <br />
                <asp:TextBox ID="txtPhoneNumber" runat="server"></asp:TextBox>

Вот мой код:

protected void btnSubmitPersonalInfo_Click(object sender, EventArgs e)
        {
            Customer customer = new Customer();
            customer.Name = txtName.Text;
            customer.Address = txtAddress.Text; 
            customer.PhoneNumber = txtPhoneNumber.Text;
            customer.City = txtCity.Text;
            customer.State = txtState.Text; 
            customer.Zip = txtZip.Text;

            Session["Customer"] = customer;
            Response.Redirect("CreditCardInfo.aspx");
        }

А вот мой класс C #:

public class Customer
    {
        public string Name { get; set; }
        public string Address { get; set; }
        public string PhoneNumber { get; set; }
        public string City { get; set; }
        public string State { get; set; }
        public string Zip { get; set; }
        public string CardNumber { get; set; }
        public string ExpirationDate { get; set; }
        public string SecurityCode { get; set; }
        public Customer() { }

    }    

И это ИнтернетФорма, в которой я хочу отобразить данные:

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

        txtDisplayData.Text = Session["Customer"].ToString();

    }
}

В настоящее время txtDisplayData отображает пространство имен и это все.Может кто-нибудь, пожалуйста, направьте меня в правильном направлении, так как я чувствую, что я слишком обдумывал это.Спасибо.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Вы можете набрать приведение Session ["Customer"] к объекту Customer, например

var obj = (Customer) Session ["Customer"];

txtDisplayData.Text = obj.Name;

0 голосов
/ 13 февраля 2019

Вы можете хранить все что угодно в сессиях.Чтобы получить обратно их свойства, преобразуйте сеанс в исходный класс.Это должно работать.

В вашем случае вы предоставляете сеанс напрямую, вам необходимо преобразовать его обратно в класс и затем предоставить его:

Customer customer = new Customer();
// Assign object into session
Session["Customer"] = customer ;

И вы можете получить подробную информациюкак это:

// get session value into object
Customer customer =  (Customer)Session["Customer"];
...