>  기사  >  백엔드 개발  >  MVC 페이지 리디렉션을 위한 ASP 코드 설명

MVC 페이지 리디렉션을 위한 ASP 코드 설명

Y2J
Y2J원래의
2017-05-05 12:00:061103검색

이 기사에서는 주로 ASP.NET MVC 페이지 리디렉션 관련 정보를 자세히 소개하며, 이는 특정 참조 가치가 있습니다. 관심 있는 친구는 asp.net Redirect: Server.Execute("의

페이지를 참조할 수 있습니다. m2.aspx"); 서버는 이 페이지를 리디렉션하기 전에 데이터를 저장한 후 실행을 위해 페이지를 m2.aspx로 리디렉션한 다음 이 페이지로 돌아와 실행을 계속합니다. 그런 다음 세 가지 결과를 결합하여 반환합니다.
위 내용은 서버측 페이지 리디렉션이므로 브라우저에는 페이지 변경 기록이 표시되지 않습니다(표시되는 주소는 변경되지 않습니다). 따라서 사용자가 이 페이지를 새로 고치면 다른 예상치 못한 상황이 발생할 수 있습니다. 이러한 페이지 리디렉션은 이전 페이지의 서버 컨트롤 에 액세스하는 등의 다른 기능을 완료할 수 있습니다.

1. Response.Redirect:

브라우저가 aspx 페이지를 요청하고 Redirect(url) 메서드를 만나면 브라우저에 알리는 것과 같습니다. 페이지에 먼저 액세스해야 하므로 브라우저는 이 페이지에 대한 요청을 서버에 보냅니다. 재배치는 브라우저를 통해 수행되므로 서버와 브라우저 사이에 추가 왕복이 발생합니다. 네트워크 상태가 좋지 않은 경우 두 개의 요청으로 인해 애플리케이션의 응답 속도가 크게 감소하고 과도한 대역폭을 차지할 수도 있습니다.

결론적으로 네트워크 상태가 좋을 때는 Redirect(url) 방식이 가장 효율적입니다!! Server.Transfer 방식과 Server.Execute 방식이 가장 유연합니다!! !! 서버. Execute 메서드가 가장 많은 리소스를 차지합니다.

2. asp.net에서 제공하는 페이지로 이동하는 세 가지 방법 비교

1 response.redirect 페이지로 이동하는 이 방법은 2번의 왕복(2번의 포스트백)이 필요하지만 사이트 페이지 제한 없이 모든 페이지로 이동할 수 있고(즉, Yahoo에서 Sina로 이동할 수 있음) 로그인 보호를 건너뛸 수 없기 때문에 매우 빠르게 점프하지는 않습니다. 하지만 느린 속도가 가장 큰 단점이에요! 리디렉션 점프 메커니즘: 먼저 새 페이지로 점프해야 함을 알리기 위해 http 요청이 클라이언트에 전송된 다음 클라이언트가 서버에 점프 요청을 보냅니다. 점프 후에는 내부 공간에 저장된 데이터 정보가 모두 사라지므로 세션을 사용해야 한다는 점에 유의하세요.
2개의 server.transfer는 빠르며 포스트백이 한 번만 필요하지만. . . . 서버의 방식이므로 동일한 사이트에 있어야 합니다. 또한 로그인 보호를 우회할 수도 있습니다. 작은 프로그램을 작성해 볼 수 있습니다. 1페이지에서 2페이지로 점프하도록 설계하세요. 하지만 2페이지로 들어가려면 로그인하고 인증을 거쳐야 하지만 점프 문에서 transfer를 사용하는 경우 로그인 페이지가 팝업되지 않습니다. 이 방법의 리디렉션 요청은 서버 측에서 발생하므로 브라우저의 URL 주소는 여전히 원본 페이지의 주소를 유지합니다!
3 sever.execute 페이지 디자인에 주로 사용되는 방식으로, 같은 사이트 내의 페이지로 점프해야 합니다. 이 방법은 한 페이지의 출력 결과를 다른 aspx 페이지에 삽입해야 할 때 사용됩니다. 대부분은 특정 페이지가 다른 페이지에 중첩되어 존재하는 테이블에 있습니다.

3. 페이지 리디렉션 방법 선택 방법

asp.net에는 4가지 페이지 점프 탐색 방법이 있습니다. 페이지에 대한 방법을 선택하는 방법은 무엇입니까?
·사용자가 언제 페이지를 전환할지, 어떤 페이지로 이동할지 결정하도록 하려면 하이퍼링크가 가장 좋습니다.
·변환 대상을 제어하는 ​​프로그램을 사용하고 싶지만 변환 시점이 사용자에 의해 결정되는 경우 웹 서버의 HyperLink 제어를 사용하여 NavigateUrl 속성 을 동적으로 설정하십시오.
·사용자를 다른 서버의 리소스에 연결하려면 Response.Redirect를 사용하세요.
·Response.Redirect를 사용하여 HTML 페이지와 같은 비 ASPX 리소스에 사용자를 연결합니다.
· 쿼리 문자열 을 URL의 일부로 유지하고 이를 서버에 전달해야 하는 경우 다른 두 메서드는 두 번의 포스트백을 달성할 수 없기 때문에 데이터는 다음과 같아야 합니다. 먼저 Response.Redirect를 사용하여 서버로 다시 가져옵니다.
·실행 프로세스를 동일한 웹 서버의 다른 ASPX 페이지로 전송하려면 Response.Redirect 대신 Server.Transfer를 사용해야 합니다. Server.Transfer를 사용하면 불필요한 네트워크 통신을 피할 수 있어 더 나은 성능과 Browse를 얻을 수 있기 때문입니다. 효과.
·한 ASPX 페이지의 출력 결과를 캡처한 다음 특정 위치의 다른 ASPX 페이지에 결과를 삽입하려면 Server.Execute를 사용하세요.
·HTML 출력이 합법적인지 확인하려면 Response.Redirect를 사용하고 Server.Transfer 또는 Server.Execute 메서드를 사용하지 마십시오.
그런데, URL이 한자를 지원하지 않기 때문에 종종 잘못된 문자가 나타나는 경우가 있기 때문에 쿼리 문자열에 한자를 사용하기 위해 리디렉션 방법을 사용하는 방법이 있습니다. 이번에는 변환해야 합니다:
string message =server.urlencode("Welcome")
먼저 변환한 다음 쿼리 문자열
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("ActionName", "ControllerName")//이 메서드는 ActionName 및 ControllerName을 직접 작성하므로 변경된 컨트롤러 아래의 페이지가 다음과 같아야 한다는 전제가 있어야 합니다. 이전 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();
  }
 }
}

【관련 권장사항】

1.

ASP 무료 동영상 튜토리얼

2. 튜토리얼

3.

Li Yanhui ASP 기본 동영상 튜토리얼

위 내용은 MVC 페이지 리디렉션을 위한 ASP 코드 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.