Session ashx asp.net giá trị trả về null không thấy dù đã khai báo

Thảo luận trong 'Lập trình web Asp.net' bắt đầu bởi seolagi, 4/11/16.

  1. seolagi

    seolagi

    Vip Member

    Tham gia ngày:
    16/4/14
    Bài viết:
    369
    Đã được thích:
    15
    Điểm thành tích:
    18
    HI mọi người mình sửu dụng ngôn ngữ asp.net lập trình web, khi tạo file ashx mình gọi Session trong file ashx thì giá trị trả về null không thấy dù đã khai báo.từ khi mở web như dưới.
    Mã:
    //khai báo trong Global.asax
    void Session_Start(object sender, EventArgs e)
            {
                    DataTable GioHang = new DataTable();
                    GioHang.Columns.Add("ProductID", typeof(string));
                    GioHang.Columns.Add("ProductNameShort", typeof(string));
                    GioHang.Columns.Add("GiaSP", typeof(float));
                    GioHang.Columns.Add("GiaSPCu", typeof(float));
                    GioHang.Columns.Add("imgUrl", typeof(string));
                   
                    GioHang.Columns.Add("SoLuong", typeof(int));
                    GioHang.Columns.Add("ThanhTien", typeof(float), "GiaSP*SoLuong");
                    GioHang.PrimaryKey = new DataColumn[] { GioHang.Columns["ProductID"] };
    
                    Session["GioHang"] = GioHang;
           }
    
    Mã:
    //khai báo trong ProductByCart.ashx
    public class ProductByCart : IHttpHandler 
        {
    
            public void ProcessRequest(HttpContext context)
            {
           
                DataTable GioHang = (DataTable)context.Session["GioHang"];
                .....
            }
    }
    
    Giá trị trả về context.Session["GioHang"] = null

    Dữ liệu mình lấy lại không có, dù mình đã tạo mới ngay từ lúc mở web hizz. ai biết giúp với.
     
    Cảm ơn đã xem bài:

    Session ashx asp.net giá trị trả về null không thấy dù đã khai báo

    danh sách diễn đàn rao vặt gov chất lượng
  2. admin

    admin Phạm Công Sơn Thành viên BQT

    Tham gia ngày:
    22/5/13
    Bài viết:
    4,021
    Đã được thích:
    847
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Bạn phải khai báo thêm dữ liệu nhận biết Session trong file ashx là : IReadOnlySessionState và dùng thư viện using System.Web.SessionState;

    Ví dụ như code của bạn mình chỉnh lại sau:
    Mã:
    //khai báo trong ProductByCart.ashx
    using System.Web.SessionState;
    public class ProductByCart : IHttpHandler, IReadOnlySessionState
        {
            public void ProcessRequest(HttpContext context)
            {
          
                DataTable GioHang = (DataTable)context.Session["GioHang"];
                .....
            }
    }
    
    Bạn làm giống vậy và kiểm tra lại nhé. Dữ liệu sẽ có khi bạn làm như trên.
     
    seolagi thích bài này.
  3. seolagi

    seolagi

    Vip Member

    Tham gia ngày:
    16/4/14
    Bài viết:
    369
    Đã được thích:
    15
    Điểm thành tích:
    18
    Cảm ơn ad, mình đã lấy được dữ liệu từ session như cách trên, thanks !!
     
  4. Dplebrng965

    Dplebrng965 Thành Viên Mới

    Tham gia ngày:
    26/12/16
    Bài viết:
    12
    Đã được thích:
    0
    Điểm thành tích:
    1
    Giới tính:
    Nữ
    Vị huynh đài này khẩu ngôn vô cùng sắc bén… kiến thức uyên thâm.. lời nói nặng tựa ngàn cân, như ngàn đao vạn kiếm tung hoành bốn phương khiến các anhhùng hào kiệt chỉ nhìn qua di động thôi e rằng đã đủ khiếp sợ!!!
     


Like và Share ủng hộ ITSEOVN