ASP.NET MVC 페이지 재 설정 간단 한 소개

asp.net 에서 페이지 방향 변경:Server.Execute("m2.aspx");서버 는 이 페이지 가 방향 을 바 꾸 기 전의 데 이 터 를 저장 한 후,페이지 를 m2.aspx 로 돌려 서 실행 하고,다시 이 페이지 로 돌아 가 계속 실행 합 니 다.세 가지 결 과 를 합 친 후 브 라 우 저 에 게 되 돌려 줍 니 다.
이상 은 서버 쪽 페이지 가 바 뀌 었 기 때문에 브 라 우 저 에 페이지 변경 기록 이 나타 나 지 않 습 니 다(표 시 된 주 소 는 바 뀌 지 않 습 니 다).따라서 사용자 가 이 페이지 를 새로 고치 면 다른 의외 의 상황 이 발생 할 수 있 습 니 다.이 페이지 는 이전 페이지 에 접근 한 서버 컨트롤 과 같은 다른 기능 을 수행 할 수 있 습 니 다.
1.Response.Redirect:
브 라 우 저가 aspx 페이지 를 요청 할 때 Redirect(url)방법 을 만나면 브 라 우 저 에 게 먼저 특정한 페이지 를 방문 해 야 한 다 는 것 을 알려 주 는 것 과 같 습 니 다.그래서 브 라 우 저 는 서버 에 이 페이지 의 요청 을 보 냅 니 다.재 포 지 셔 닝 은 브 라 우 저 를 통 해 실 행 됩 니 다.서버 와 브 라 우 저 사이 에 추가 적 인 왕복 과정 이 생 길 수 있 습 니 다.네트워크 상태 가 좋 지 않 은 상황 에서 두 번 의 요청 은 응용 프로그램의 반응 속 도 를 크게 낮 추고 심지어 불필요 한 대역 폭 을 차지 할 수 있다.
결론 적 으로 네트워크 상태 가 비교적 좋 은 상황 에서 Redirect(url)방법의 효율 이 가장 높다!!Server.Transfer 방법 과 Server.Execute 방법 이 가장 유연 합 니 다!!Server.Execute 방법 이 자원 을 가장 많이 차지 합 니 다.
2.페이지 asp.net 에서 제공 하 는 세 가지 방법 비교
1 response.redirect 는 페이지 를 뛰 어 넘 는 방법 이 빠 르 지 않 습 니 다.2 번 왕복(2 번 postback)해 야 하기 때 문 입 니 다.그러나 그 는 모든 페이지 로 뛰 어 넘 을 수 있 습 니 다.사이트 페이지 제한(즉 야후 에서 시 나 닷 컴 으로 뛰 어 넘 을 수 있 습 니 다)이 없 으 며 로그 인 보 호 를 뛰 어 넘 을 수 없습니다.하지만 속도 가 느 린 것 이 가장 큰 결함 이다!redirect 점프 메커니즘:먼저 http 요청 을 클 라 이언 트 에 보 내 고 새 페이지 로 이동 해 야 한 다 는 통 지 를 한 다음 에 클 라 이언 트 가 서버 에 점프 요청 을 보 냅 니 다.주의해 야 할 것 은 점프 후 내부 공간 에 저 장 된 모든 데이터 정 보 를 잃 어 버 리 기 때문에 session 을 사용 해 야 합 니 다.
2 server.transfer 속도 가 빨 라 서 한 번 만 postback 이 필요 합 니 다.하지만...그 는 서버 의 한 방법 이기 때문에 같은 사이트 에 있어 야 한다.또 로그 인 보 호 를 뛰 어 넘 을 수 있다.작은 프로그램 을 써 보 세 요.페이지 1 부터 페이지 2 까지 의 점프 를 설계 할 수 있 습 니 다.그러나 페이지 2 에 들 어 가 려 면 로그 인,form 인증 이 필요 합 니 다.그러나 점프 문 구 는 transfer 를 사용 하면 로그 인 페이지 가 뜨 지 않 습 니 다.이 방법의 재 설정 요청 은 서버 에서 발생 하기 때문에 브 라 우 저의 url 주 소 는 원래 페이지 의 주 소 를 유지 합 니 다!
3.sever.execute 이 방법 은 주로 페이지 디자인 에 사용 되 며,그 는 같은 사이트 아래 의 페이지 를 뛰 어 넘 어야 합 니 다.이 방법 은 한 페이지 의 출력 결 과 를 다른 aspx 페이지 에 삽입 해 야 할 때 사용 하 는 것 입 니 다.대부분 표 에서 한 페이지 를 다른 페이지 에 끼 워 넣 는 것 과 유사 하 게 존재 합 니 다.
3.페이지 재 설정 방법 을 어떻게 선택 합 니까?
asp.net 에는 네 가지 페이지 가 네 비게 이 션 방식 으로 전환 되 어 있 습 니 다.어떻게 페이지 를 선택 하 시 겠 습 니까?
·사용자 가 언제 페이지 를 바 꿀 지,어느 페이지 로 넘 어 갈 지 결정 하려 면 하이퍼링크 가 가장 적합 합 니 다.
·전환 대상 을 프로그램 으로 제어 하려 면 사용자 가 전환 시 기 를 결정 하고 웹 서버 의 HyperLink 컨트롤 을 사용 하여 NavigateUrl 속성 을 동적 으로 설정 합 니 다.
・사용 자 를 다른 서버 에 연결 하려 면 Response.Redirect 를 사용 하 십시오.
・Response.Redirect 로 사용 자 를 비 ASPX 자원,예 를 들 어 HTML 페이지 에 연결 합 니 다.
・검색 문자열 을 url 의 일부분 으로 서버 에 전송 해 야 할 때 다른 2 가지 방법 으로 는 post back 을 2 번 할 수 없 기 때문에 데 이 터 를 서버 로 가 져 와 Response.Redirect 를 사용 합 니 다.
・실행 절 차 를 같은 웹 서버 의 다른 ASPX 페이지 로 옮 기 려 면 Response.Redirect 가 아 닌 Server.Transfer 를 사용 해 야 합 니 다.Server.Transfer 는 불필요 한 네트워크 통신 을 피 할 수 있 기 때문에 더 좋 은 성능 과 조회 효 과 를 얻 을 수 있 습 니 다.
・ASPX 페이지 의 출력 결 과 를 캡 처 한 후 결 과 를 다른 ASPX 페이지 의 특정 위치 에 삽입 하려 면 Server.Execute 를 사용 합 니 다.
・HTML 출력 을 합 법 적 으로 확보 하려 면 Response.Redirect 를 사용 하 십시오.Server.Transfer 또는 Server.Execute 방법 을 사용 하지 마 십시오.
참고 로 redirect 방법 을 사용 하여 검색 문자열 에서 한 자 를 사용 하 는 방법 도 알려 드 립 니 다.자주 발생 하 는 경우 가 있 기 때문에 url 은 한 자 를 지원 하지 않 기 때 문 입 니 다.이 럴 때 전환 이 필요 합 니 다.
string message=server.urlencode("환영 합 니 다");
먼저 변환 하고 검색 문자열 을 사용 합 니 다.
response.redirect("webform2.aspx?msg="+message);
Server.Execute 에 대하 여
이 페이지 내 비게 이 션 방식 은 ASPX 페이지 에 대한 함수 호출 과 유사 합 니 다.호출 된 페이지 는 호출 된 페이지 의 폼 데이터 와 조회 문자열 집합 에 접근 할 수 있 기 때문에 호출 된 페이지 Page 명령 의 EnableViewStateMac 속성 을 False 로 설정 해 야 합 니 다.
기본적으로 호출 된 페이지 의 출력 을 현재 응답 흐름 에 추가 합 니 다.단,Server.Execute 방법 은 출력 흐름 에 직접 추가 하 는 것 이 아니 라,TextWriter 대상(또는 하위 대상,예 를 들 어 StringWriter 대상)을 통 해 호출 된 페이지 의 출력 을 가 져 올 수 있 는 리 셋 방법 이 있 습 니 다.원본 페이지 에서 호출 된 페이지 의 출력 결 과 를 편리 하 게 조정 할 수 있 습 니 다. 
MVC 페이지 의 방향 을 바 꾸 는 것 은 매우 간단 하 다.주로 다음 과 같은 몇 가지 형식 이 있다.
  1.Response.Redirect();방법.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcDemo.Controllers
{
 [HandleError]
 public class HomeController : Controller
 {
  public ActionResult Index()
  {
   ViewData["Message"] = "     ASP.NET MVC!";
   Response.Redirect("User/News");
   return View();
  }

  public ActionResult About()
  {
   return View();
  }
 }
}

2.Return  Redirect();방법.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcDemo.Controllers
{
 [HandleError]
 public class HomeController : Controller
 {
  public ActionResult Index()
  {
   ViewData["Message"] = "     ASP.NET MVC!";
   return Redirect("User/News");
  }

  public ActionResult About()
  {
   return View();
  }
 }
}

3.Return RedirectToAction();방법.
이 방법 은 두 가지 무 거 운 짐 이 있다.
RedirectToAction(“ActionName”);//이 방법 은 페이지 에 직접 기록 합 니 다.전 제 는 컨트롤 러 를 바 꾸 어 앞의 Index.aspx 와 About.aspx 와 같은 페이지 를 물 어 봐 야 합 니 다.
RedirectToAction("Action Name","Controller Name")//이 방법 은 Action Name 과 Controller Name 을 직접 기록 합 니 다.전 제 는 컨트롤 러 를 바 꾸 어 앞의 Index.aspx 와 About.aspx 와 같은 페이지 를 물 어 봐 야 합 니 다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcDemo.Controllers
{
 [HandleError]
 public class HomeController : Controller
 {
  public ActionResult Index()
  {
   ViewData["Message"] = "     ASP.NET MVC!";
   return RedirectToAction("News","User");
  }

  public ActionResult About()
  {
   return View();
  }
 }
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기