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
);