วันนี้ผมกำลังทำฟังก์ชั่นให้ติวเตอร์ส่งข้อความในบริษัท พูดตรงๆ เมื่อติวเตอร์เข้ามาครั้งแรกไม่มีข้อความก็เพิ่มเข้ามาแก้ไขแน่นอน การโต้ตอบระหว่าง CS และแผนกต้อนรับ และฉันใช้มันผ่าน Handler
เนื่องจากคุณต้องการแก้ไขข้อความของเขา คุณต้องแก้ไขตาม ID ของเขา อย่างไรก็ตาม โดยทั่วไปแล้ว โครงการของบริษัทจะบันทึกข้อมูลของผู้ใช้หลังจากเข้าสู่ระบบในเซสชัน ดังนั้นจึงไม่ต้องสงสัยเลยว่าจะต้องได้รับ ID ตาม ID . ฉันมักจะในตอนแรก
ฉันไม่สามารถรับ ID ได้ นั่นคือฉันไม่สามารถรับ ID ที่ต้องการในไฟล์ cs ได้ วิธีที่ฉันได้รับมีดังนี้: string uid = HttpContext.Current.Session[UserSessionPolicy.SESSION_USERID] as string;
อธิบาย "UserSessionPolicy.SESSION_USERID" นี้ โดยที่ "UserSessionPolicy" เป็นคลาสที่ใช้บันทึกข้อมูลผู้ใช้เป็นพิเศษ แน่นอนว่ายังบันทึก ID ผู้ใช้ ซึ่งก็คือ "SESSION_USERID" ไว้ในโค้ดด้วย เมื่อฉันคลิกปุ่มส่ง มีการรายงานข้อผิดพลาดเช่น "วัตถุไม่ได้อ้างอิงถึงอินสแตนซ์" ทุกคนคงคิดว่ามันไม่ได้สร้างอินสแตนซ์อย่างแน่นอน ถูกต้อง มันไม่ใช่แค่การสร้างอินสแตนซ์ แต่จะสร้างอินสแตนซ์ใน Handler ได้อย่างไร?
สำหรับ Session ทุกคนรู้ดีว่า session เป็นขอบเขตที่ใช้ในการบันทึกสถานะ ดังนั้นจึงต้องอ้างอิงเนมสเปซในตัวจัดการ ฉันเคยพบปัญหานี้มาก่อน
ฉันปวดหัวมาก วันนี้ฉันแก้ไขได้แล้ว วันนี้ผมจะเขียนศีลธรรมของผมไว้ที่นี่และแบ่งปันกับทุกคน ผมหวังว่าในอนาคตชาวเน็ตจะให้ความช่วยเหลือเล็กๆ น้อยๆ เมื่อเจอปัญหาเดียวกันนี้
ในตัวอย่างของฉัน ผู้สอนจำเป็นต้องใช้ ID ในข้อความของเขา ผู้ใช้รายอื่นที่จำเป็นต้องใช้ ID สามารถทำได้หรือไม่ โดยทั่วไปแล้ว คลาสที่ประมวลผลข้อมูลผ่าน Handler จะต้องอ้างอิงถึงชื่อ "using System.Web.SessionState"
space จากนั้นคลาสนั้นจะสืบทอด "IReadOnlySessionState" ตัวอย่างเช่น:
รหัส
<%@ WebHandler Language="C#" Class="TeacherInfoHandler" %>ใช้ระบบ;ใช้ System.Web;ใช้ com.rrs.baby.business.Information;ใช้ com.rrs.core;ใช้ System.Web.Script.Serialization ;ใช้ System.Web.SessionState;//ใช้ ID ที่จะบันทึกในเซสชันโดยใช้ System.Collections;TeacherInfoHandler คลาสสาธารณะ: IHttpHandler, IReadOnlySessionState{ //Method body}
ในคลาส TeacherInfoHandler นี้ คุณสามารถใช้ค่าที่เซสชันบันทึกไว้ได้