2017-09-13 3 views
0

Ich habe meine Service-Schnittstelle mit Http Verb Attribute eingerichtet, aber funktioniert nicht. Jede Methode wird als Post-Verb behandelt.Http Verb Attribut funktioniert nicht

Ich verwende AspNetCore 1.1 und Abp Pakete 2.3.0

public interface ISettlementAppService : IApplicationService 
{ 
    Task<PagedResultDto<SettlementListDto>> GetPaged(GetSettlementInput input); 

    [HttpDelete] 
    Task Cancel(EntityDto<string> input); 
} 
+0

tun Sie meinen Sie Ihre Aktionen in der Steuerung mit HttpGet eingerichtet, HttpPut oder HttpDelete und alle von ihnen sind nach wie vor als Httppost behandelt ?, ** Haben Sie versucht, benennen Sie Aktionen wie GetMethod, PutMethod, etc? ** Bitte setzen Sie Ihren Code in Ihre Frage –

+0

Ich verwende keine Controller. Ich benutze die Anwendungsdienste und dynamische Webapi. Laut diesem Dokument [https://aspnetboilerplate.com/Pages/Documents/Dynamic-Web-API](https://aspnetboilerplate.com/Pages/Documents/Dynamic-Web-API) sollte es nur funktionieren, indem Sie die Schnittstelle dekorieren Methoden. Aber ich finde heraus, dass nur funktioniert, wenn die konkreten Klassenmethoden eingerichtet sind. Vielleicht sollte das ein Fehler sein, ich weiß es nicht. –

Antwort

1

Tun Sie es so;

public class SettlementAppService : ISettlementAppService 
{ 

    [HttpDelete] 
    Task Cancel(EntityDto<string> input){ 
     //... 
    } 
} 
2

Für ASPnet Core diese Attribute auf die Anwendung Dienstklasse hinzufügen, nicht zu kommunizieren. Weil sie von AspNet Core MVC (nicht von ABP) gehandhabt werden und nicht über Schnittstellen wissen.

Aus der Dokumentation (https://aspnetboilerplate.com/Pages/Documents/AspNet-Core#controllers):

Hinweis: Zuvor dynamisches Web-api-System wurde erfordert Service-Schnittstellen für Anwendungsdienste zu erstellen. Dies ist jedoch für die ASP.NET Core-Integration nicht erforderlich. Außerdem sollten MVC-Attribute zu den Serviceklassen hinzugefügt werden, auch wenn Sie über Schnittstellen verfügen.

Verwandte Themen