Pregunta

hola estoy tratando de crear una URL que tiene este aspecto:

negro / granito / encimeras

donde el negro y granito cambiarán por lo que he tratado de crear mis propias rutas en global.asax.cs este modo:

 routes.MapRoute("Kitchen", "kitchen/[color]/[surface]/[type]",
                        new {controller = "kitchen", action = "surface"});

cambiar la URL para la cocina / negro / granito / encimeras

esta manera pensé que podría crear un controlador llamado cocina con una superficie de acción llamada mi código para esto se ve así:

public ActionResult surface(string color, string surface, string type)
    {
        ViewData["color"] = color;
        ViewData["surface"] = surface;
        ViewData["type"] = type;
        return View();
    }

Sin embargo, me parece que no puede conseguir que funcione, me sale el error 404 para esta URL a pesar de mi asignación personalizada, alguien me puede apuntar en la dirección de la lectura, he estado leyendo esta página aquí: http: // blogs. asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx

esto es lo que me dio la idea, como lo ha hecho la consulta y el código de la página es un poco owt de fecha ya estoy usando MVC Preview 2

Muchas gracias

¿Fue útil?

Solución

La forma en que funciona ahora, está en su Global.asax, te gustaría algo como esto:

 routes.MapRoute("Kitchen Surface Route", 
                 "kitchen/{color}/{surface}/{type}",
                 new {controller = "kitchen", action = "surface", color="", surface = "", type=""});

Y entonces tendría un ActionLink este modo:

<%= Html.ActionLink("Link Text", "Kitchen", "surface", new {color="theColor", type="theType", surface="surfaceType"}, null) %>

Se puede conseguir un poco complicado con rutas veces. También puede utilizar de Phil Haack Ruta depurador para ayudar hacia fuera.

Otros consejos

de Phil Haack Ruta depurador a ayudan a ver qué ruta se está utilizando para cada solicitud.

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