www org mapwingis mapwindows mapwindow espaƱol c# asp.net url url-routing

c# - org - Enrutamiento ASP.NET con formularios web



mapwindows 5 (6)

No estoy seguro de si esta es su respuesta, pero esto puede llevarlo en la dirección correcta, es Scott Hanselman (MSFT) que muestra cómo obtener ASP.NET WebForms, ASP.NET MVC y ASP.NET Dynamic Data - oh y AJAX para trabajar juntos en armonía.

http://www.hanselman.com/blog/PlugInHybridsASPNETWebFormsAndASPMVCAndASPNETDynamicDataSideBySide.aspx

He leído el enrutamiento ASP.NET ... ¿Adiós a la reescritura de URL? y el uso de enrutamiento con WebForms, que son excelentes artículos, pero limitados a simples ejemplos ilustrativos de "hello world".

¿Alguien está usando el enrutamiento ASP.NET con formularios web de una manera no trivial? ¿Algún problema para tener en cuenta? ¿Problemas de desempeño? ¿Lectura recomendada que debería consultar antes de iniciar una implementación propia?

EDITAR encontró estas URL útiles adicionales:






Un ejemplo simple de cómo usar el enrutamiento en ASP.NET

  1. Crear aplicación web vacía
  2. Agregar el primer formulario - Default.aspx
  3. Agregar segunda forma - Second.aspx
  4. Agregue la tercera forma - Third.aspx
  5. Agregar a los botones default.aspx 3 -

    protected void Button1_Click(object sender, EventArgs e) { Response.Redirect("Second.aspx"); } protected void Button2_Click(object sender, EventArgs e) { Response.Redirect("Third.aspx?Name=Pants"); } protected void Button3_Click(object sender, EventArgs e) { Response.Redirect("Third.aspx?Name=Shoes"); }

  6. Leer cadena de consulta en la tercera página

    protected void Page_Load(object sender, EventArgs e) { Response.Write(Request.QueryString["Name"]); }

Ahora, si ejecuta el programa, podrá navegar a la segunda y tercera forma. Así es como solía ser. Vamos a agregar enrutamiento.

  1. Agregar nuevo elemento - Global.aspx usando System.Web.Routing;

    protected void Application_Start(object sender, EventArgs e) { RegisterRoutes(RouteTable.Routes); } void RegisterRoutes(RouteCollection routes) { routes.MapPageRoute( "HomeRoute", "Home", "~/Default.aspx" ); routes.MapPageRoute( "SecondRoute", "Second", "~/Second.aspx" ); routes.MapPageRoute( "ThirdRoute", "Third/{Name}", "~/Third.aspx" ); }

  2. En default.aspx modificar protected void Button1_Click (object remitente, EventArgs e) {// Response.Redirect ("Second.aspx"); Response.Redirect (GetRouteUrl ("SecondRoute", null)); }

    protected void Button2_Click(object sender, EventArgs e) { //Response.Redirect("Third.aspx?Name=Pants"); Response.Redirect(GetRouteUrl("ThirdRoute", new {Name = "Pants"})); } protected void Button3_Click(object sender, EventArgs e) { // Response.Redirect("Third.aspx?Name=Shoes"); Response.Redirect(GetRouteUrl("ThirdRoute", new { Name = "Shoes" })); }

  3. Modificar la carga de la página en third.aspx

    protected void Page_Load(object sender, EventArgs e) { //Response.Write(Request.QueryString["Name"]); Response.Write(RouteData.Values["Name"]); }

Ejecute el programa, tenga en cuenta que la URL se ve mucho más limpia: no hay extensiones de archivo (Second.aspx se convierte en Second)

  1. Pasar más de un argumento

    • agregue un nuevo botón a default.aspx con el siguiente código:

      protected void Button4_Click(object sender, EventArgs e) { Response.Redirect(GetRouteUrl("FourthRoute", new { Name = "Shoes" , Gender = "Male"})); }

    • agregue el siguiente código a global.asax

      routes.MapPageRoute( "FourthRoute", "Fourth/{Name}-{Gender}", "~/Fourth.aspx" );

    • crea la página Fourth.aspx con la siguiente carga de página:

      protected void Page_Load(object sender, EventArgs e) { Response.Write("Name is: " + RouteData.Values["Name"] + " and Gender is " + RouteData.Values["Gender"]); }