Laden...

WebApi Problem mit Methoden mit der selben Signatur

Erstellt von Ahrimaan vor 10 Jahren Letzter Beitrag vor 10 Jahren 2.836 Views
A
Ahrimaan Themenstarter:in
350 Beiträge seit 2010
vor 10 Jahren
WebApi Problem mit Methoden mit der selben Signatur

Hallo zusammen,

ich finde bei google nix gescheites aber evtl. weiß jmd die Lösung :

Ich habe als WebApi zwei Methoden :


[HttpPost]
public bool UpdateUser([FromBody] User user)
{
 //...mache was
}

[HttpPost]
public bool AddUser([FromBody] User user)
{
 //...mache was
}


Nun kriege ich beim Aufruf einer der beiden Methoden folgende Text :

{"Message":"Fehler","ExceptionMessage":"Es wurden mehrere Aktionen gefunden, die mit der Anforderung übereinstimmen: \r\nBoolean UpdateUser(ChaosShopper.Data.Model.User) für den Typ ChaosShopper.WebApi.Controllers.AccountController\r\nBoolean AddUser(ChaosShopper.Data.Model.User) für den Typ ChaosShopper.WebApi.Controllers.AccountController","ExceptionType":"System.InvalidOperationException","StackTrace":"   bei System.Web.Http.Controllers.ApiControllerActionSelector.ActionSelectorCacheItem.SelectAction(HttpControllerContext controllerContext)\r\n   bei System.Web.Http.Controllers.ApiControllerActionSelector.SelectAction(HttpControllerContext controllerContext)\r\n   bei System.Web.Http.ApiController.ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken)\r\n   bei System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsyncInternal(HttpRequestMessage request, CancellationToken cancellationToken)\r\n   bei System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)"}

Sicherlich hat das etwas mit den Routen zu tun, nur fällt mir nicht ein wie man das Lösen könnte ...

Grüße

C
2.121 Beiträge seit 2010
vor 10 Jahren

Lösung hab ich nicht, aber ich hab interessehalber gesucht und einen Tip zur Suche.
Bei solchen Meldungen ist es erfolgreicher wenn man sie auf Englisch übersetzt und danach sucht. Das macht Google manchmal für einen, wenn man die Stichwörter eintippt.
"multiple actions were found that match the request"
Damit gibts im Vergleich zur deutschen Fassung viele Treffer.

16.826 Beiträge seit 2008
vor 10 Jahren

Wenns REST werden soll dann muessen die Methoden auch REST-Konform benannt werden.

2.207 Beiträge seit 2011
vor 10 Jahren

Hallo Ahrimaan,

entweder du benennst die Methoden Rest-Konform oder du gibst die Route explizit an.

Attribute Routing in Web API 2

oder

Attribute routing in Web API

Gruss

Coffeebean

A
Ahrimaan Themenstarter:in
350 Beiträge seit 2010
vor 10 Jahren

Hi,

der Tip mit der REST konformen API war ein guter Tipp, danke 😉