2
When requesting a service by my App, gives me this error:
Multiple controller types Were found that match the URL. This can if happen attribute Routes on Multiple controllers match the requested URL. r n r nThe request has found the following matching controller types:
\r\nAutorizadorService.Controllers.NegarController\r\nAutorizadorService.Controllers.AtualizaController",
But by the App I have it:
public async Task UpdateLiberacaoAsync(double id, string value, List<Liberacao> liber)
{
try
{
string url = $"http://www.inetglobal.com.br/autorizador/api/atualiza/{id}/{value}";
var uri = new Uri(string.Format(url));
var data = JsonConvert.SerializeObject(liber);
var content = new StringContent(data, Encoding.UTF8, "application/json");
HttpResponseMessage response = null;
response = await client.PutAsync(uri, content);
//if (!response.IsSuccessStatusCode)
//{
// throw new Exception("Erro ao atualizar tabela de liberacao");
//}
}
catch (Exception ex)
{
string er = ex.Message;
}
}
and in my service (Atorizadorservice) see this: Controller
[EnableCors(origins: "*", headers: "*", methods: "*")]
[RoutePrefix("api/Atualiza")]
public class AtualizaController : ApiController
{
AutorizadorContext contexto = new AutorizadorContext();
PedidoLiberacao liberacao = new PedidoLiberacao();
[Route("{id}/{value}")]
[AcceptVerbs("Put")]
public void PutItensLiberacao(int id, string value)
{
liberacao.AtualizaLiberacao(id, value);
}
}
and my model service
[Route("{id}/{value}")]
public void AtualizaLiberacao(int id, string value)
{
var lista = contexto.Liberacoes
.Where(l => l.IdOrcamento == id)
.ToList();
lista.ForEach(f =>
{
f.FlagLiberacao = 1;
f.AutorizouReceberAtrazado = value;
});
contexto.SaveChanges();
}
the whole point is that I have another call Deny which is the same way passed, the parameters like this
[Route("{id}/{value}")]
public void AtualizaNegarLiberacao(int id, string value)
{
var lista = contexto.Liberacoes
.Where(l => l.IdOrcamento == id)
.ToList();
lista.ForEach(f =>
{
f.FlagLiberacao = 2;
f.AutorizouReceberAtrazado = value;
});
contexto.SaveChanges();
}
how do I configure the routes for each service, it take the right route.
LINQ and the call goes:
dominio/api/controller/negar/id/value
?– pnet
@pnet This method is not from the same controller (
AtualizaController
) of the other?– Jéf Bueno
No, they’re different. I don’t know why the bug. I have Actualizcontroller and Negarcontroller
– pnet