오늘은 튜터가 회사에 메시지를 제출하는 기능을 작업하고 있습니다. 직설적으로 말하면 튜터가 처음 들어갈 때 메시지가 없으며 메시지가 추가되고 수정됩니다. CS와 프론트 데스크 간의 상호 작용을 핸들러를 통해 구현합니다.
그의 메시지를 수정하려면 그의 ID를 기준으로 수정해야 합니다. 그러나 일반적으로 회사의 프로젝트는 세션에 로그인한 후 사용자의 정보를 저장하므로 ID를 기반으로 ID를 얻어야 한다는 것은 의심의 여지가 없습니다. .나는 항상 처음에는
ID를 얻을 수 없습니다. 즉, cs 파일에서 원하는 ID를 얻을 수 없습니다. 얻는 방법은 다음과 같습니다. string uid = HttpContext.Current.Session[UserSessionPolicy.SESSION_USERID] as string;
"UserSessionPolicy.SESSION_USERID"에 대해 설명합니다. 여기서 "UserSessionPolicy"는 사용자 정보를 저장하는 데 특별히 사용되는 클래스입니다. 물론 사용자 ID인 "SESSION_USERID"도 코드에 저장합니다. 제출 버튼을 클릭하면 "객체가 인스턴스에 참조되지 않았습니다"와 같은 오류가 보고되었습니다. 모두가 인스턴스화되지 않았다고 생각하겠습니까? 맞습니다. 인스턴스화되지 않았지만 핸들러에서 인스턴스화하는 방법은 무엇입니까?
세션의 경우 세션이 상태를 저장하는 데 사용되는 범위라는 것을 모두가 알고 있으므로 핸들러에서 네임스페이스를 참조해야 합니다. 이전에 이 문제가 발생했습니다.
머리가 너무 아팠는데 오늘 해결했어요. 오늘은 여기에 제 도덕을 적어서 모두와 공유하겠습니다. 앞으로도 네티즌들이 비슷한 문제에 직면했을 때 작은 도움이 되기를 바랍니다.
내 예에서는 튜터가 메시지에 ID를 사용해야 합니다. ID를 사용해야 하는 다른 사용자도 이 작업을 수행할 수 있나요? 일반적으로 Handler를 통해 데이터를 처리하는 클래스는 "using System.Web.SessionState;"라는 이름을 참조해야 합니다.
공백이면 해당 클래스는 "IReadOnlySessionState"를 상속합니다. 예를 들어:
암호
<%@ WebHandler Language="C#" Class="TeacherInfoHandler" %>System 사용;System.Web 사용;com.rrs.baby.business.Information 사용;com.rrs.core 사용;System.Web.Script.Serialization 사용 ;using System.Web.SessionState;//세션에 저장할 ID 사용using System.Collections;public class TeacherInfoHandler: IHttpHandler, IReadOnlySessionState{ //메소드 본문}
이 TeacherInfoHandler 클래스에서는 세션에서 저장한 값을 사용할 수 있습니다.