Saltar al contenido

Cómo usar URLs amigables en formularios web

×

– seleccione el colaborador al final de la página –

Hay muchos beneficios al usar URLs amigables. No sólo pueden ayudarte a eliminar los parámetros de las cadenas de consulta y las extensiones de los archivos de la línea de la URL, sino que también son buenos para lo siguiente:

Cómo usar URLs amigables en formularios web
Cómo usar URLs amigables en formularios web
  • Cadena de consulta de limpieza
  • El usuario no conoce el nombre real de la página
  • Más fácil de usar para los usuarios

Con URLs amigables, en lugar de este:www.url.com/Products.aspxwww.url.com/Products.aspx?ProductId=3You consigue este:www.url.com/Productswww.url.com/Products/3Friendly Los URLs están disponibles en Formularios Web y MVC. He visto muchos ejemplos de URLs amigables usando MVC, pero muy pocos usando formularios web. Así que he pensado en dedicar unos minutos a discutir cómo podéis hacer esto. En realidad, el proceso es casi idéntico. Primero, necesitas descargar el Microsoft.Asp.Net.FriendlyUrls.Core.dll si no lo tienes ya en tu proyecto. (Si tienes una aplicación ASP.NET más antigua, probablemente no la tengas). Si estás iniciando un nuevo proyecto en Visual Studio 2013, y eliges la plantilla Formularios web, esta DLL ya está presente.Si quieres usar URLs amigables en un proyecto más antiguo, selecciona Herramientas | Gestor de paquetes NuGet | Gestionar paquetes NuGet para la solución en el menú de Visual Studio. Busca en línea las Microsoft.AspNet.FriendlyUrls e instala el Microsoft.AspNet.FriendlyUrls.Core. No necesitas ninguna de las otras DLLs de la lista de paquetes de NuGet, sólo la DLL «Core».Si tienes una carpeta App_Start, busca una clase llamada RouteConfig.cs. Si está ahí, entonces ya tienes lo que necesitas. Si no lo está, añade una clase llamada RouteConfig a tu proyecto. Añade las siguientes usando declaraciones en la parte superior de este nuevo archivo de clase:using System.Web.Routing;using Microsoft.AspNet.FriendlyUrls;O bien añade el siguiente método, o modifícalo para que tenga el siguiente aspecto. Esto asume que tienes tres páginas en tu proyecto; Default.aspx, Customers.aspx y Products.aspx. Siéntase libre de sustituir los nombres de sus páginas como apropiado.public static void RegisterRoutes(RouteCollection routes){routes.EnableFriendlyUrls();routes.MapPageRoute(«», «Default», «~/Default.aspx»);routes.MapPageRoute(«», «Customers», «~/Customers.aspx»);routes. MapPageRoute(«», «GetCustomer/{CustomerId}»,»~/Customers.aspx»);routes.MapPageRoute(«», «Products», «~/Products.aspx»);routes.MapPageRoute(«»GetProduct», «GetProduct/{ProductId}»,»~/Products.aspx»);}En la página anterior rutas tienes algunos marcadores de posición de parámetros denotados por las llaves {}. Estos son los que usas para pasar cualquier parámetro, y los nombres que usas para recuperar esos valores. El siguiente paso es abrir su Global.asax y añadir o comprobar si tiene la siguiente usando declaración en la parte superior del archivo:using System.Web.Routing;En el evento Application_Start() necesita ahora llamar al método RegisterRoutes que creó en el último paso. El objeto RouteTable.Routes , creado por el motor ASP.NET, es lo que se añade en el método RegisterRoutes:RouteConfig.RegisterRoutes(RouteTable.Routes);Ahora puede ejecutar su tipo de aplicación ASP.NET en cualquiera de los siguientes:http://localhost:xxxx/Productshttp://localhost:xxxx/GetProduct/22http://localhost:xxxx/Customershttp://localhost:xxxx/GetCustomer/ABCFrom cualquier etiqueta en sus páginas web ahora puede utilizar la siguiente sintaxis:Get All ProductsObtener todos los productosObtener el producto #22Notificar que no necesita la extensión «.aspx». Si utiliza el objeto Response para redirigir desde el código detrás, también puede utilizar la misma abreviatura para cualquier ruta que no tenga un parámetro.Response.Redirect(«Productos»);Response.Redirect(«Clientes»);

Pasar parámetros usando el objeto Response

Si vas a pasar un ID de cliente o un ID de producto a tus páginas, y quieres usar el objeto Response, tienes que configurar las cosas de forma un poco diferente. Recuerda que creaste la siguiente página de mapa de ruta en la clase RouteConfig:routes.MapPageRoute(«GetProduct», «GetProduct/{ProductId}»,»~/Samples/ProductView.aspx»);Para redirigir a esta página, utilizas el método RedirectToRoute del objeto Response. Response.RedirectToRoute(«GetProduct»,new {ProductId = 33});El primer parámetro que pases al método RedirectToRoute debe coincidir con el primer parámetro de MapPageRoute. El segundo parámetro es un objeto con el nombre en los corchetes {ProductId} establecido al valor que deseas pasar (en el caso anterior, 33).

Recuperando los parámetros pasados

Para recuperar el valor pasado, se utiliza la propiedad Page.RouteData.Values. Pase el nombre del parámetro que está buscando, en este caso «ProductId», y devolverá o bien un nulo si no se encuentra, o bien el valor. Normalmente se recuperan estos valores del evento Page_Load procedure.if (Page.RouteData.Values[«ProductId»] != null){int ProductId =Convert.ToInt32(Page.RouteData.Values[«ProductId»]);}

Para llevar

Usar URLs amigables es bastante fácil de lograr tanto en los formularios web como en MVC. Puedes descargar los URLs amigables «Core» DLL de NuGet para añadirlos a cualquier proyecto. Luego con sólo unas pocas líneas de código puedes empezar a llamar a tus páginas de una manera muy amigable.

Consigue nuestro contenido primero. En tu bandeja de entrada.

1229

Contribuyente

Paul Sheriff

¿Listo para capacitar a todo tu equipo?

10Licencias¿Necesitas más licencias? Contacte con ventas. Continúe con la compraContinúe con la compraCancelar

Con tu plan, puedes:

Con tu piloto de 14 días, puedes:

  • Acceder a miles de videos para desarrollar habilidades críticas
  • Darle acceso a hasta 10 usuarios a miles de cursos de video
  • Practicar y aplicar habilidades con cursos y proyectos interactivos
  • Ver datos de habilidades, uso y tendencias de sus equipos
  • Prepararse para las certificaciones con los exámenes de prácticas líderes en la industria
  • Medir la competencia entre las habilidades y los roles
  • Alinear el aprendizaje a sus objetivos con los caminos y canales

╲╱Solutions Skills FlowGift of View PricingContactar Sales╲╱PlatformBrowse libraryRole IQSkill IQIrisAuthorsProfessional ServicesTechnology Index╲╱CompanyAbout usCustomer storiesInvestorsCareersBlogNewsroomResource centerGuides╲╱ResourcesDownload EventsTeachPartnersAffiliate programOne.orgSubscribe╲╱SupportContactHelp centerIP whitelistSitemapCopyright © 2004 – LLC. Todos los derechos reservadosTérminos de usoPolítica de privacidad

Utilizamos cookies para que las interacciones con nuestros sitios web y servicios sean fáciles y significativas. Para obtener más información sobre las cookies que utilizamos o para saber cómo puede desactivarlas, haga clic aquí.

Acepta las cookies y cierra este mensaje Deshabilitar cookies

Ha desactivado las cookies no críticas y está navegando en modo privado. Para tener la mejor experiencia posible en nuestro sitio web, por favor, acepte las cookies. Para obtener más información, lea nuestra política de privacidad.

Acepta las cookies y cierra este mensaje