Maison >développement back-end >Tutoriel C#.Net >Explication du code ASP pour la redirection de page MVC

Explication du code ASP pour la redirection de page MVC

Y2J
Y2Joriginal
2017-05-05 12:00:061128parcourir

Cet article présente principalement en détail les informations pertinentes sur la redirection de page ASP.NET MVC, qui ont une certaine valeur de référence. Les amis intéressés peuvent se référer à la page

dans asp.net Redirect : Server.Execute(" m2.aspx"); Une fois que le serveur a enregistré les données avant la redirection de cette page, il redirige la page vers m2.aspx pour exécution, puis revient à cette page pour continuer l'exécution. Les résultats des trois sont ensuite fusionnés et renvoyés vers le navigateur.
Les éléments ci-dessus sont des redirections de page côté serveur, donc le navigateur n'affiche pas les enregistrements de changement de page (l'adresse affichée ne changera pas). Par conséquent, si l'utilisateur actualise cette page, d'autres situations inattendues peuvent se produire. Une telle redirection de page peut compléter certaines autres fonctions, telles que l'accès au serveur contrôle dans la page précédente.

1. Response.Redirect :

Lorsque le navigateur demande une page aspx et rencontre la méthode Redirect(url), cela équivaut à indiquer au navigateur que vous Une page doit être consultée en premier, le navigateur envoie ensuite une demande au serveur pour cette page. La relocalisation s'effectue via le navigateur, entraînant un aller-retour supplémentaire entre le serveur et le navigateur. Lorsque l'état du réseau n'est pas très bon, deux requêtes réduiront considérablement la vitesse de réponse de l'application et occuperont même un excès de bande passante.

En résumé, lorsque l'état du réseau est bon, la méthode Redirect(url) est la plus efficace !! !! Serveur. La méthode Execute consomme le plus de ressources.

2. Comparaison des trois méthodes fournies par asp.net pour accéder à la page

1 réponse.redirect Cette méthode d'accès à la page ne ne saute pas rapidement, car cela prend 2 allers-retours (2 publications), mais il peut accéder à n'importe quelle page sans restrictions de page du site (c'est-à-dire qu'il peut passer de Yahoo à Sina), et il ne peut pas ignorer la protection de connexion. Mais la vitesse lente est son plus gros défaut ! Mécanisme de saut de redirection : tout d'abord, une requête http est envoyée au client pour l'informer qu'il doit accéder à une nouvelle page, puis le client envoie une requête de saut au serveur. Il convient de noter que toutes les informations de données enregistrées dans l'espace interne seront perdues après le saut, la session doit donc être utilisée.
2 server.transfer est rapide et ne nécessite qu'une seule publication, mais. . . . Il doit être sous le même site car c'est une méthode du serveur. De plus, il peut contourner la protection de connexion. Vous pouvez essayer d'écrire un petit programme : concevoir un saut de la première page à la deuxième page, mais pour accéder à la deuxième page, vous devez vous connecter et former une authentification, mais si l'instruction de saut utilise le transfert, la page de connexion ne s'affichera pas. La demande de redirection de cette méthode se produit côté serveur, donc l'adresse URL du navigateur conserve toujours l'adresse de la page d'origine !
3 sever.execute Cette méthode est principalement utilisée dans la conception de pages, et elle doit accéder aux pages du même site. Cette méthode est utilisée lorsque les résultats de sortie d'une page doivent être insérés dans une autre page aspx. La plupart d'entre eux se trouvent dans des tableaux, où une certaine page existe dans une autre page de manière imbriquée.

3. Comment choisir la méthode de redirection de page

Il existe quatre méthodes de saut de page navigation dans asp.net Comment en choisir une pour votre page ?
·Les hyperliens sont les meilleurs si vous voulez que les utilisateurs décident quand changer de page et à quelle page aller.
·Si vous souhaitez utiliser un programme pour contrôler la cible de conversion, mais que le moment de la conversion est déterminé par l'utilisateur, utilisez le contrôle HyperLink du serveur Web pour définir dynamiquement sa propriété NavigateUrl .
·Si vous souhaitez connecter l'utilisateur à une ressource sur un autre serveur, utilisez Response.Redirect.
·Utilisez Response.Redirect pour connecter les utilisateurs à des ressources non-ASPX, telles que des pages HTML.
·Lorsque vous devez conserver la requête chaîne dans le cadre de l'URL et la transmettre au serveur, car les deux autres méthodes ne peuvent pas réaliser deux publications, les données doivent être ramené au serveur en premier. Utilisez Response.Redirect.
·Si vous souhaitez transférer le processus d'exécution vers une autre page ASPX sur le même serveur Web, vous devez utiliser Server.Transfer au lieu de Response.Redirect, car Server.Transfer peut éviter les communications réseau inutiles, obtenant ainsi de meilleures performances et une meilleure navigation. les effets.
·Si vous souhaitez capturer les résultats de sortie d'une page ASPX, puis insérer les résultats dans une autre page ASPX à un emplacement spécifique, utilisez Server.Execute.
·Si vous souhaitez vous assurer que la sortie HTML est légale, veuillez utiliser Response.Redirect, n'utilisez pas la méthode Server.Transfer ou Server.Execute.
Au fait, comment utiliser la méthode de redirection pour utiliser des caractères chinois dans la chaîne de requête, car des caractères souvent tronqués apparaissent car l'URL ne prend pas en charge les caractères chinois. Cette fois, vous devez convertir :
string message =server.urlencode("Welcome");
convertir d'abord, puis utiliser la chaîne de requête
response .redirect("webform2.aspx?msg="+message);
À propos de Server.Execute
Cette méthode de navigation dans les pages est similaire à la méthode unique. fonction pour les pages ASPX Appel, la page appelée peut accéder aux données du formulaire et à la collection de chaînes de requête de la page appelante, donc la propriété EnableViewStateMac de la commande Page de la page appelée doit être définie sur False.
Par défaut, la sortie de la page appelée est ajoutée au flux de réponse actuel. Cependant, la méthode Server.Execute possède une méthode surchargée qui permet d'obtenir la sortie de la page appelée via un objet TextWriter (ou ses sous-objets, comme un objet StringWriter ) au lieu d'ajouter directement au flux de sortie, afin que la position du résultat de sortie de la page appelée puisse être facilement ajustée dans la page d'origine.

La redirection de page MVC est très simple, principalement sous les formes suivantes :

1.Méthode Response.Redirect(); 🎜>

2.Return Redirect(); méthode
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();
  }
 }
}

3.Return RedirectToAction(); >

Cette méthode a deux surcharges
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();
  }
 }
}

RedirectToAction("ActionName");//Cette méthode écrit directement sur la page, le principe doit être de changer la page sous le contrôleur Tel comme le précédent Index.aspx et About.aspx

RedirectToAction("ActionName", "ControllerName")//Cette méthode écrit directement ActionName et ControllerName, le principe doit être que la page sous le contrôleur modifié est la même avant Index.aspx et About.aspx

【Recommandations associées】

1

Tutoriel vidéo gratuit ASP

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();
  }
 }
}

2. >Tutoriel ASP

3. Tutoriel vidéo de base de Li Yanhui ASP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn