2017-09-13 5 views
0

J'ai décoré mon interface de service avec les attributs verbaux Http, mais ne fonctionne pas. Chaque méthode est traitée comme un post-verbe.Attribut Http Verbe ne fonctionnant pas

J'utilise AspNetCore 1.1 et Abp les packages 2.3.0

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

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

voulez-vous dire vos actions dans décoré le contrôleur avec HttpGet, HttpPut ou HttpDelete et tous sont encore traités comme HttpPost ?, ** Avez-vous essayé de nommer vos actions comme GetMethod, PutMethod, etc? ** Veuillez mettre votre code dans votre question –

+0

Je n'utilise pas de contrôleurs. J'utilise les services d'application et le webapi dynamique. Selon ce document [https://aspnetboilerplate.com/Pages/Documents/Dynamic-Web-API](https://aspnetboilerplate.com/Pages/Documents/Dynamic-Web-API) il ne devrait fonctionner que par la décoration de l'interface méthodes Mais je trouve que cela ne fonctionne que lorsque les méthodes de classe de béton sont décorées. Peut-être que ça devrait être bug, je ne sais pas. –

Répondre

1

Faites comme ceci;

public class SettlementAppService : ISettlementAppService 
{ 

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

réSEAU Core ajouter ces attributs à la classe de service d'application, et non à l'interface. Parce qu'ils sont gérés par AspNet Core MVC (pas par ABP) et qu'il ne connaît pas les interfaces.

De la documentation (https://aspnetboilerplate.com/Pages/Documents/AspNet-Core#controllers):

Note: Auparavant, le système de api web dynamique a été nécessaire de créer des interfaces de service pour les services d'application. Mais ceci n'est pas requis pour l'intégration ASP.NET Core. En outre, les attributs MVC doivent être ajoutés aux classes de service, même si vous avez des interfaces.