route net mvc attribute asp asax asp.net-mvc model-view-controller routes

asp.net-mvc - mvc - route attribute asp net core



Creación de URL con asp.net MVC y RouteUrl (1)

Me gustaría obtener la URL actual y anexar un parámetro adicional a la url (por ejemplo? Id = 1)

Definí una ruta:

routes.MapRoute( "GigDayListings", // Route name "gig/list/{year}/{month}/{day}", // URL with parameters new { controller = "Gig", action = "List" } // Parameter defaults ); In my view I have a helper that executes the following code: // Add page index _helper.ViewContext.RouteData.Values["id"] = 1; // Return link var urlHelper = new UrlHelper(_helper.ViewContext); return urlHelper.RouteUrl( _helper.ViewContext.RouteData.Values);

Sin embargo, esto no funciona.

Si mi URL original fue: gig / list / 2008/11/01

yo obtengo

gig / list /? year = 2008 & month = 11 & day = 01 & id = 1

Me gustaría que la url sea: controller / action / 2008/11/01? Id = 1

¿Qué estoy haciendo mal?


El orden de las reglas hace sentido. Intenta insertar esta regla como primero.

Además, no se olvide de definir restricciones si es necesario; se obtendrá una mejor coincidencia de reglas:

routes.MapRoute( "GigDayListings", // Route name "gig/list/{year}/{month}/{day}", // URL with parameters new { controller = "Gig", action = "List" }, // Parameter defaults new { year = @"^[0-9]+$", month = @"^[0-9]+$", day = @"^[0-9]+$" } // Constraints );