¿Es posible cambiar el nombre del controlador de enrutamiento en MVC? En MVC 5 habría hecho esto:
[RoutePrefix("MySpecialSauce")]
public class ProductsController : Controller
{
[Route("GetBy/{id}")]
public MyObject GetBy(int id)
{
return something(id);
}
}
Ahora todo lo que puedo encontrar es usar el nombre predeterminado de su controlador:
[Route("[controller]")]
public class ProductsController : Controller
{
[HttpGet("GetBy/{id}")]
public MyObject GetBy(int id)
{
return something(id);
}
}
Quiero usar un nombre diferente para mi ruta que el nombre del controlador real. ¿Cómo haces esto?
Respuestas
4 para la respuesta № 1Puedes hacer lo mismo en Core
[Route("MySpecialSauce")]
public class ProductsController : Controller {
[HttpGet("GetBy/{id:int}")]//Matches GET MySpecialSauce/GetBy/5
public MyObject GetBy(int id) {
return something(id);
}
}
[controller]
es un reemplazo de token para ayudar con la plantilla de ruta. No es obligatorio.
Fuente Reemplazo de token en las plantillas de ruta ([controlador], [acción], [área])
Para mayor comodidad, las rutas de atributos admiten el reemplazo de tokens por adjuntando un token entre llaves (
[
,]
). Los tokens[action]
,[area]
y[controller]
será reemplazado por los valores de la nombre de la acción, nombre del área y nombre del controlador de la acción donde el La ruta está definida.