ASP.NET 페이지 간 전달 값 의 몇 가지 방식 을 열거 합 니 다.

1.ASP.NET 페이지 간 전달 값 의 몇 가지 방식 을 열거 합 니 다.
1).QueryString 을 사용 합 니 다.예 를 들 어...?id=1; response. Redirect().... 
2).세 션 변 수 를 사용 합 니 다 
3).Server.Transfer 사용
페이지 사이 에 변수 내용 을 전달 하기 위해 서 ASP.NET 은 우리 에 게 몇 가지 선택 을 해 주 었 습 니 다.한 가지 선택 은 QueryString 속성 을 사용 합 니 다.
1:QueryString.검색 문자열 로 웹 페이지 를 요청 할 수 있 습 니 다.ASP.NET 의 Query String 이 이 정 보 를 방문 합 니 다.file.html 를 불 러 올 때?x=y 일 때'x'와'y'를 해석 합 니 다.우선,사용자 가 Default.aspx 에 접근 할 때 실행 되 는.aspx 웹 창 페이지 를 보 았 습 니 다.이 코드 는 코드 숨 김 부분 Default.aspx.cs 입 니 다.
URL 의 끝 에 문자열 을 추가 해 보 시 겠 습 니까?param = dotnet ”。Response.Write 가 실 행 됩 니 다.
기반:.NET QueryString 예제:C#

using System;
using System.Web.UI;
public partial class _Default : Page
{
 protected void Page_Load(object sender, EventArgs e)
 {
  string v = Request.QueryString["param"];
  if (v != null)
  {
   Response.Write("param is ");
   Response.Write(v);
  }
 }
}
결과,Page 인쇄 param 조회 의 값 입 니 다.이 값 은 문자열 값 입 니 다:param is dotnet.
두 개의 인자.계속 하려 면 두 개의 검색 문자열 URL 인 자 를 테스트 합 니 다.이것 은 개발 에서 상당히 보편적 인 요구 이다.그 중 하나 나 두 개 를 동시에 사용 해 야 할 수도 있 습 니 다.
여러 개의 인자 가 있 는 Query String 예제:C#1

using System;
using System.Web.UI;
public partial class _Default : Page
{
 protected void Page_Load(object sender, EventArgs e)
 {
  string v = Request.QueryString["param"];
  if (v != null)
  {
   Response.Write("param is ");
   Response.Write(v);
  }
  string x = Request.QueryString["id"];
  if (x != null)
  {
   Response.Write(" id detected");
  }
 }
}
테스트 코드 이 사이트 주소:?param=first&id=true테스트 를 진행 하려 면 인터넷 브 라 우 저(예 를 들 어 Internet Explorer 나 Firefox)의 URL 끝 에 테스트 URL 을 입력 하 십시오.이 문자열 은"param"조 회 를"first"와 같이 지정 합 니 다.또한'id'인 자 는'true'와 같 습 니 다.
Quote:키 나 인덱스 로 접근 할 수 있 는 관련 String 키 와 String 값 의 집합 입 니 다.
Query String 에서 HasKeys 페이지 사용 하기:C#1

using System;
using System.Web.UI;
using System.Collections.Specialized;
public partial class _Default : Page
{
 protected void Page_Load(object sender, EventArgs e)
 {
  // Get collection
  NameValueCollection n = Request.QueryString;
  //              
  if (n.HasKeys())
  {
   //         
   string k = n.GetKey(0);
   string v = n.Get(0);
   //       
   if (k == "param")
   {
    Response.Write("param is " + v);
   }
   if (k == "id")
   {
    Response.Write("id is " + v);
   }
  }
 }
}
Request.QueryString 은 검색 문자열 의 위 치 를 사용 하여 이 값 을 검색 할 수 있 습 니 다.

private void Page_Load(object sender, 
System.EventArgs e)
{
this.txtBox1.Text = Request.QueryString[0];
this.txtBox2.Text = Request.QueryString[1];
}


foreach( string s in Request.QueryString)
{
Response.Write(Request.QueryString[s]);
}

아니면

for (int i =0;i < Request.QueryString.Count;i++)
{
Response.Write(Request.QueryString[i]);
}
이런 방법의 결점
  • Query String 은 최대 길이 가 있 습 니 다.많은 메 시 지 를 보 내야 한다 면 이런 방법 은 효과 가 없습니다
  • Query String 은 브 라 우 저의 주소 부분 에서 볼 수 있 기 때문에 민감 한 정보 와 함께 사용 해 서 는 안 됩 니 다
  • Query String 은&빈 칸 문 자 를 보 내 는 데 사용 할 수 없습니다
  • %20 으로 빈 칸 을 바 꾸 고%26 으로 빈 칸 을 바 꿉 니 다.
    
    private void btnSubmit_Click(object sender, System.EventArgs e)
    {
    string p1 = this.txtName.Text.Replace("&","%26");
    p1 = this.txtName.Text.Replace(" ","%20");
    string p2 = this.txtLastName.Text.Replace("&","%26");
    p2 = this.txtName.Text.Replace(" ","%20"); 
       "WebForm2.aspx?" + 
       "Name=" + p1 + 
       "&LastName=" + p2;
    Response.Redirect(p2);
    }
    
    Server.UrlEncode 도 사용 할 수 있 습 니 다.Server.UrlEncode 방법 은 문제 가 없 도록 검색 문자열 을 변경 합 니 다.
    
    private void btnSubmit_Click(object sender, System.EventArgs e)
    {
    Response.Redirect("WebForm2.Aspx?" + 
    "Name=" + Server.UrlEncode(this.txtName.Text) + 
    "&LastName=" + Server.UrlEncode(this.txtLastName.Text)); 
    }
    
    2.Session&Cookie
    세 션 사용 이 간단 하고 간단 한 데이터 형식 뿐만 아니 라 대상 도 전달 할 수 있 습 니 다.데이터 크기 는 제한 되 지 않 습 니 다.Session 변수 에 대량의 데 이 터 를 저장 하면 서버 자원 이 많이 소 모 됩 니 다.잃 어 버 리 기 쉽다.원본 페이지 의 코드 에 전달 할 이름과 값 구조 Session 변 수 를 만 듭 니 다.Session["Name"]="Value(Or Object)";목적 페이지 의 코드 는 Session 변 수 를 사용 하여 전달 하 는 값 을 추출 합 니 다.Result=Session["Nmae"]주의:session 을 사용 하지 않 을 때 없 앨 수 있 습 니 다.없 애 는 방법 은:Session.Remove("session 이름")를 제거 하 는 것 입 니 다.모든 것 지우 기:Session.clear();
    
    string city = "Seattle"; 
    //    Web           
    Session["City"] = city; 
    // Web             。 
    city = (string)(Session["City"]); 
    // Web       ,  HttpContext.Current。 
    HttpContext context = HttpContext.Current; 
    context.Session["FirstName"] = firstName; 
    firstName = (string)(context.Session["FirstName"]);
    
    Session 클래스 는 키 형식 문자열 과 값 형식 대상 과 유사 한 사전 입 니 다.이것 은 모든 종류의 변 수 를 저장 하고 나중에 이름 으로 참조 할 수 있 습 니 다.
    쿠키 란 무엇 입 니까?
    쿠키 는 클 라 이언 트 의 시스템 이나 클 라 이언 트 브 라 우 저 메모리 에 만 든 작은 파일 입 니 다(임시 파일 이 라면).우 리 는 클 라 이언 트 시스템 에 작은 블록 정 보 를 저장 하고 필요 할 때 사용 할 수 있 습 니 다.가장 재 미 있 는 것 은 사용자 와 투명 하 게 일 하 는 것 이다.그것 은 웹 프로그램의 모든 위치 에서 쉽게 사용 할 수 있다.Cookies 는 일반 텍스트 형식 으로 정 보 를 저장 합 니 다.웹 프로그램 이 쿠키 를 사용 하면 서버 에서 쿠키 를 보 내 고 클 라 이언 트 브 라 우 저 는 이 를 저장 합 니 다.그리고 브 라 우 저 는 다음 요청 페이지 에서 쿠키 를 서버 에 되 돌려 줍 니 다.쿠키 를 사용 하 는 가장 흔 한 예 는 사용자 정 보 를 저장 하 는 것 입 니 다.사용자 의 첫 번 째 옵션,암호 기억 옵션 등 입 니 다.cookies 는 많은 장점 과 단점 이 있 습 니 다.
    Cookies 는 어떻게 시 작 했 나 요?
    클 라 이언 트 가 서버 에 요청 할 때 서버 는 쿠키 를 클 라 이언 트 에 보 냅 니 다.추가 요청 은 같은 쿠키 를 참조 할 수 있 습 니 다.예 를 들 어 codeprocject.com 이 세 션 ID 를 쿠키 로 저장 하면 클 라 이언 트 가 처음으로 서버 에 명중 하면 서버 는 세 션 ID 를 생 성하 여 쿠키 로 클 라 이언 트 에 보 냅 니 다.
    브 라 우 저 와 웹 서버 는 쿠키 정 보 를 교환 하 는 것 을 책임 집 니 다.서로 다른 사이트 에 대해 브 라 우 저 는 서로 다른 방식 으로 쿠키 를 보존 합 니 다.만약 페이지 에 쿠키 정보 가 필요 하 다 면 이 URL 이 명중 되 었 을 때 먼저 로 컬 시스템 에서 쿠키 정 보 를 검색 한 다음 이 정 보 를 가 진 서버 로 이동 합 니 다.
    Cookies 의 장점
    다음은 웹 응용 프로그램 에서 쿠키 를 사용 하 는 주요 장점 입 니 다.
    그것 의 사용 과 실현 은 매우 간단 하 다.
    브 라 우 저 는 데 이 터 를 보 내 는 것 을 책임 집 니 다.
    쿠키 를 포함 하 는 여러 사이트 에 대해 브 라 우 저 는 자동 으로 정렬 합 니 다.
    쿠키 의 단점
    그것 은 간단 한 텍스트 형식 으로 데 이 터 를 저장 하기 때문에 전혀 안전 하지 않다.
    쿠키 데 이 터 는 크기 제한(4096 바이트/4KB)이 있 습 니 다.
    허용 되 는 최대 쿠키 수량 도 제한 되 어 있 습 니 다.대부분의 브 라 우 저 는 쿠키 의 수량 을 20 으로 제한 합 니 다.새로운 쿠키 가 나타 나 면 오래된 쿠키 는 버 려 집 니 다.일부 브 라 우 저 는 최대 300 개 를 지원 한다.
    쿠키 만 드 는 방법
    쿠키 를 사용 하려 면 네 임 스페이스 System.web 을 사용 해 야 합 니 다.
    방식 1(HttpCookies 클래스 사용)
    
    HttpCookie StudentCookies = new HttpCookie("StudentCookies");
    StudentCookies.Value = TextBox1.Text;
    StudentCookies.Expires = DateTime.Now.AddHours(1);
    Response.Cookies.Add(StudentCookies);
    
    방식 2(Response 직접 사용)
    
    Response.Cookies["StudentCookies"].Value = TextBox1.Text;
    Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(1);
    
    방식 3(같은 쿠키 의 여러 값)
    
    Response.Cookies["StudentCookies"]["RollNumber"] = TextBox1.Text;
    Response.Cookies["StudentCookies"]["FirstName"] = "Abhimanyu";
    Response.Cookies["StudentCookies"]["MiddleName"] = "Kumar";
    Response.Cookies["StudentCookies"]["LastName"] = "Vatsa";
    Response.Cookies["StudentCookies"]["TotalMarks"] = "499";
    Response.Cookies["StudentCookies"].Expires = DateTime.Now.AddDays(1);
    
    코드 를 보고 쿠키 를 만 들 고 웹 응답 으로 추가 하 는 방법 을 보 세 요.
    만 든 쿠키 는 브 라 우 저가 닫 힐 때 까지 계속 존재 합 니 다.우 리 는 쿠키 를 꾸준히 사용 할 수 있다.
    쿠키 에서 데 이 터 를 읽 는 방법
    이제 쿠키 에서 데 이 터 를 검색 할 때 가 되 었 습 니 다.쿠키 를 읽 기 전에 먼저 쿠키 를 찾 았 는 지 확인 해 야 합 니 다.쿠키 를 읽 기 전에 쿠키 를 검사 하 는 것 은 좋 은 습관 입 니 다.브 라 우 저가 c ookie 를 사용 하지 않 을 수도 있 기 때 문 입 니 다.
    
    string roll = Request.Cookies["StudentCookies"].Value; //For First Way
    
    string roll = Request.Cookies["StudentCookies"].Value; //For Second Way
    
    string roll;
    roll = Request.Cookies["StudentCookies"]["RollNumber"];
    roll = roll + " " + Request.Cookies["StudentCookies"]["FirstName"];
    roll = roll + " " + Request.Cookies["StudentCookies"]["MiddleName"];
    roll = roll + " " + Request.Cookies["StudentCookies"]["LastName"];
    roll = roll + " " + Request.Cookies["StudentCookies"]["TotalMarks"];
    Label1.Text = roll;
    
    
    어떻게 쿠키 정 보 를 삭제 합 니까?
    저 희 는 쿠키 폴 더 에서 클 라 이언 트 기기 의 쿠키 정 보 를 삭제 할 수 있 습 니 다.
    쿠키 대상 의 만 료 시간 설정
    
    userInfo.Expires = DateTime.Now.AddHours(1);
    그것 은 한 시간 안에 쿠키 를 제거 할 것 이다.
    3.신청 대상
    애플 리 케 이 션 대상 의 역할 범 위 는 전체 국면 이다.즉,모든 사용자 에 게 효과 가 있다 는 것 이다.전체 프로그램의 수명 주기 에 유효 합 니 다.전역 변 수 를 사용 하 는 것 과 같 기 때문에 서로 다른 페이지 에서 액세스 할 수 있 습 니 다.이것 과 Session 변수의 차 이 는 전 자 는 모든 사용자 가 공유 하 는 전역 변수 이 고 후 자 는 각 사용자 만 의 전역 변수 이다.
    예 를 들 어 사이트 방문 수.여러 요청 이 있 을 때 그것 을 조작 할 수 있 습 니 다.
    장점:1.간단 하고 적은 서버 자원 을 사용 합 니 다.
    2.간단 한 데 이 터 를 전달 할 수 있 을 뿐만 아니 라 대상 도 전달 할 수 있다.
    3.데이터 크기 는 제한 되 지 않 습 니 다.
    단점:1.전역 변수 로 서 오 작 동 하기 쉽다.따라서 한 사용자 가 사용 하 는 변 수 는 일반적으로 application 을 사용 할 수 없습니다.
    사용 방법:1.원본 페이지 의 코드 에 전달 할 이름과 값 구조 Application 변 수 를 만 듭 니 다.application["Nmae"]="Value(Or Object)";
    2.목적 페이지 의 코드 는 Application 변 수 를 사용 하여 전달 하 는 값 을 추출 합 니 다.Result = Application["Nmae"]
    메모:잠 금 및 잠 금 해제 에 사용 되 는 lock 과 unlock 방법 으로 동시 수정 을 방지 합 니 다.
    
    string name; 
      Application.Lock(); 
      name = Application["name"].ToString(); 
      Application.UnLock();
    4.Server.Transfer
    현재 페이지 의 실행 을 중지 하고 현재 요청 한 새 페이지 를 실행 합 니 다.
    
    Server.Transfer("Logon.aspx", true);
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기