CONTROLLER COM ROTA DINAMICA E ESTATICA
Estou tentando colocar uma rota dinamica e estatica no mesmo controller, a dinamica funciona certinho, mas se coloco uma estatica sempre da 404.
Se eu executo da certo
localhost/contrato/abrir/xyz-123
Se eu executo da errado
localhost/contrato/novo
Alguma sugestao do que pode estar dando errado ?
public class ContratoController : BaseController
{
[HttpGet]
public IActionResult Novo()
{
// code here
}
[HttpGet("{controller}/{*action}")]
public IActionResult Abrir(int? page)
{
// code here
}
Se eu executo da certo
localhost/contrato/abrir/xyz-123
Se eu executo da errado
localhost/contrato/novo
Alguma sugestao do que pode estar dando errado ?
Para acessar o método Novo, voce precisaria chamar:
localhost/contrato
Não importa muito o nome do método para a rota. Se voce quiser que a rota seja contrato/novo, voce precisará fazer:
localhost/contrato
Não importa muito o nome do método para a rota. Se voce quiser que a rota seja contrato/novo, voce precisará fazer:
[HttpGet("novo")]
public IActionResult Novo()
{
return Ok("123");
}
Na verdade o meu erro foi outro...
Eu estava (sem perceber) rotulando todas as actions para cair em uma rota, mas na verdade eu tinha que esperar o id ser "any" para então fazer o roteamento correto
Como resolvi ?
Ou seja, mantenho a rota action abrir somente com o coringa/wildcard e o resto segue a vida...
Eu estava (sem perceber) rotulando todas as actions para cair em uma rota, mas na verdade eu tinha que esperar o id ser "any" para então fazer o roteamento correto
Como resolvi ?
[HttpGet("{controller}/abrir/{*id}")]
Ou seja, mantenho a rota action abrir somente com o coringa/wildcard e o resto segue a vida...
[HttpGet]
public IActionResult Bloquear()
{
return View();
}
[HttpGet]
public IActionResult Desbloquear()
{
return View();
}
[HttpGet("{controller}/abrir/{*id}")]
public IActionResult Abrir(int? page)
{
//codigo aqui
}
Tópico encerrado , respostas não são mais permitidas