Un ejemplo sencillo de cómo utilizar el enrutamiento de ASP.NET
- Crear vacío aplicación Web
- Añadir primera forma - Default.aspx
- Agregar segunda forma - Second.aspx
- Agregar el tercer formulario - Third.aspx
Agregar a los valores predeterminados.aspx 3 botones -
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");
}
Leer cadena de consulta en la tercera página
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Request.QueryString["Name"]);
}
Ahora bien, si se ejecuta el programa, usted será capaz de navegar a la forma de la segunda y tercera. Así es como solía ser. Agreguemos el enrutamiento.
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"
);
}
En default.aspx modificar protegido (remitente objeto, EventArgs e) void Button1_Click { // Response.Redirect ("Second.aspx"); Response.Redirect (GetRouteUrl ("SecondRoute", nulo)); }
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" }));
}
Modificar 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"]);
}
Ejecutar el programa, Tenga en cuenta que el URL se ve mucho más limpio - no hay extensiones de archivo en el mismo (Second.aspx En segundo lugar se convierte simplemente)
Para pasar más de un argumento
añadir 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 código siguiente para Global.asax
routes.MapPageRoute(
"FourthRoute",
"Fourth/{Name}-{Gender}",
"~/Fourth.aspx"
);
crear la página Fourth.aspx con la siguiente carga de la página:
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("Name is: " + RouteData.Values["Name"] + " and Gender is " + RouteData.Values["Gender"]);
}
por favor la etiqueta url-routing a su publicación – Armstrongest