Ich kann nicht auf meinen ApiController zugreifen

8

Ich versuche einen Api-Controller zu erstellen, der für die Anmeldung verwendet wird. Er sollte verwendet werden, bevor mein CustomerController (Api) für den Zugriff auf Daten verwendet wird.

Das Problem ist, dass ich einen 404-Fehler bekomme, wenn ich versuche, auf meine Login-Methode auf AccountController zuzugreifen. Ich versuche POST an die AccountController zu senden, wie in meinem Screenshot unten gezeigt.

Lustig ist, dass ich problemlos auf mein CustomerController (Api) zugreifen kann, indem ich meinen Browser auf http://localhost:62655/api/customer/cvr/88888888 zeige. Fehle ich eine Konvention oder etwas für die POST-Anfrage?

Meine WebApi-Routenkonfiguration lautet:

%Vor%

Und in meinem Global.asax hinzugefügt:

%Vor%

Mein AccountController und CustomerController sehen so aus (Dateien wurden der Kürze halber zusammengeführt):

%Vor%

Das obige Bild gibt einen 404-Fehler zurück. Das Programm ist Fiddler2.

Ausnahme:

  

[HttpException]: Der Controller für den Pfad '/ api / account / login'   wurde nicht gefunden oder implementiert IController nicht.

Basierend auf Kommentaren, update - (vervollständige Global.asax und RouteConfig (MVC)

) %Vor%     
janhartmann 06.01.2014, 18:49
quelle

4 Antworten

22

Ändern Sie Ihre Konfiguration wie unten ... hier habe ich Web-API-Routen vor MVC-Routen verschoben ... Dies liegt daran, dass Web-API-Routen spezifischer sind als die allgemeinen MVC-Routen.

%Vor%     
Kiran Challa 06.01.2014, 19:51
quelle
1

Es liegt daran, dass Sie nicht definiert haben, ob die Aktion des Controllers [HttpGet] oder [HttpPost] ist. In Ihrem Fall sollte Ihre Login-Aktion wie folgt aussehen.

%Vor%

Außerdem müssen Sie [HttpGet] für Ihre CVR-Aktion bereitstellen

    
kkocabiyik 06.01.2014 19:34
quelle
0

Web-API-Methoden beginnen mit ihrem Typ, zum Beispiel umbenennen Sie Ihre Methode postcvr, dies wird automatisch für Sie aufstellen.

Link zur Dokumentation

    
theDarse 06.01.2014 19:02
quelle
0

Verwenden Sie in Ihrer API-Klasse die Routenbezeichnung     [Route ("api / [Controller]")]     Öffentliche Klasse WebApiController: ApiController     {

%Vor%

In Ihrem Global.asax:

%Vor%

In der WebApiConfig.cs:

%Vor%     
RodolfoNeto 25.05.2017 05:46
quelle

Tags und Links