0
Good afternoon, I am studying . net core with Angular and when making a GET request I have the following error:
: Microsoft.AspNetCore.Diagnostics.Developerexceptionpagemiddleware[1] An unhandled Exception has occurred while executing the request. Microsoft.AspNetCore.Routing.Patterns.Routepatternexception: In a route Parameter, '{' and '}' must be escaped with '{' and '}}'.
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using ProAgil.Domain;
using ProAgil.Repository;
namespace ProAgil.API.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class EventoController : ControllerBase
{
private readonly IProAgilRepository _repo;
public EventoController(IProAgilRepository repo)
{
_repo = repo;
}
// GET api/values
[HttpGet]
public async Task<IActionResult> Get()
{
try
{
var results = await _repo.GetAllEventoAsync(true);
return Ok(results);
}
catch (System.Exception)
{
return this.StatusCode(StatusCodes.Status500InternalServerError, "Banco de Dados Falhou");
}
}
[HttpGet("{EventoId}")]
public async Task<IActionResult> Get(int EventoId)
{
try
{
var results = await _repo.GetAllEventoAsyncById(EventoId, true);
return Ok(results);
}
catch (System.Exception)
{
return this.StatusCode(StatusCodes.Status500InternalServerError, "Banco de Dados Falhou");
}
}
[HttpGet("getByTema/{tema}")]
public async Task<IActionResult> Get(string tema)
{
try
{
var results = await _repo.GetAllEventoAsyncByTema(tema, true);
return Ok(results);
}
catch (System.Exception)
{
return this.StatusCode(StatusCodes.Status500InternalServerError, "Banco de Dados Falhou");
}
}
[HttpPost]
public async Task<IActionResult> Post(Evento model)
{
try
{
_repo.Add(model);
if(await _repo.SaveChangesAsync())
{
return Created($"/api/evento/{model.Id}", model);
}
}
catch (System.Exception)
{
return this.StatusCode(StatusCodes.Status500InternalServerError, "Banco de Dados Falhou");
}
return BadRequest();
}
[HttpPut]
public async Task<IActionResult> Put(int EventoId, Evento model)
{
try
{
var evento = await _repo.GetAllEventoAsyncById(EventoId, false);
if(evento == null) return NotFound();
_repo.Update(model);
if(await _repo.SaveChangesAsync())
{
return Created($"/api/evento/{model.Id}", model);
}
}
catch (System.Exception)
{
return this.StatusCode(StatusCodes.Status500InternalServerError, "Banco de Dados Falhou");
}
return BadRequest();
}
[HttpDelete]
public async Task<IActionResult> Delete(int EventoId)
{
try
{
var evento = await _repo.GetAllEventoAsyncById(EventoId, false);
if(evento == null) return NotFound();
_repo.Delete(evento);
if(await _repo.SaveChangesAsync())
{
return Ok();
}
}
catch (System.Exception)
{
return this.StatusCode(StatusCodes.Status500InternalServerError, "Banco de Dados Falhou");
}
return BadRequest();
}
}
}
and in Postman I make the request: http://localhost:5000/api/event/1
I believe this is some problem with . net core and route, but I don’t know where to fix it. grateful.
Also put your request code on the angular and controller on . net.
– Maycon F. Castro
this beginning here [Route("api/[controller]")] , the controller is in brackets, all right? wouldn’t be keys?
– Lucas Miranda
Lucas, thank you for the answer, the route on . net is just like that, it’s the same as the documentation link
– user33105
You can post the startup?
– Rafael