Pregunta

Estoy pensando en aprender el ASP.NET MVC marco para un próximo proyecto.¿Puedo utilizar el enrutamiento avanzado para crear URL largas basadas en la jerarquía del mapa del sitio?

Ruta de navegación de ejemplo:

Inicio > Tienda > Productos > Hogar > Cocina > Baterías de cocina > Baterías de cocina > Antiadherentes

URL MVC típica (creo):
http://example.com/products/category/NonstickCooksets

URL deseada:
http://example.com/shop/products/household/kitchen/cookware/cooksets/nonstick

¿Puedo hacer esto?

¿Fue útil?

Solución

Zack, si entiendo bien, quieres una profundidad ilimitada de las subcategorías.No es gran cosa, desde MVC Preview 3 (creo que 3 o 4) esto se ha resuelto.

Simplemente define una ruta como

"{controlador}/{acción}/{*categoryPath}"

para una URL como:

http://example.com/shop/products/household/kitchen/cookware/cooksets/nonstick

deberías tener un ShopController con una acción Productos:

public class ShopController : Controller
{
...
    public ActionResult Products(string categoryPath)
    {
        // the categoryPath value would be
        // "household/kitchen/cookware/cooksets/nonstick". Process it (for ex. split it)
        // and then decide what you do..
        return View();
    }

Otros consejos

El enrutamiento MVC le permite definir prácticamente cualquier estructura que desee, solo necesita definir qué significa semánticamente cada una de las piezas.Puede tener bits que estén "codificados", como "tienda/productos", y luego definir el resto como variable, "{categoría}/{subcategoría}/{especialidad}", etc.

También puede definir varias rutas que se asignen al mismo punto final si lo desea.Básicamente, cuando una URL ingresa a su aplicación MVC, recorre la tabla de enrutamiento hasta que encuentra un patrón que coincide, completa las variables y pasa la solicitud al controlador apropiado para su procesamiento.

Si bien la ruta predeterminada es una configuración simple de tipo Controlador, Acción e Id., ciertamente eso no es todo lo que puede hacer.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top