asp.net MVC crear mis propias rutas
-
19-09-2019 - |
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
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.