2016-06-03 6 views
0

Also ich bin neu in ASP.NET webAPI und ich habe einen Controller namens: UsersController, die die 4 CRUD-Methoden verfügbar macht. Wenn der Benutzer aufruft:WebAPI - Wie überlade ich die GET-Methode?

GET /users/1234

:

GET/Users

  • dies der Standard-Methode Get

    public IEnumerable Get()

, wenn der Benutzer Anrufe verwenden

  • dies wiederum rufen:

    public string Get (int id)

ABER ... was ist, wenn ich brauche so etwas wie:

GET/Users/Males

  • Ich möchte um alle männlichen Benutzer und
zurückzugeben

GET /Users/Tall

  • Ich möchte, dass alle Benutzer Hoch

zurückzukehren, wie ich überschreiben/die GET-Methode überlasten?

Antwort

0

Verwenden Sie RouteAttribute.

In Ihrem Api Controller:

public IEnumerable Get() 
{ 
} 

public string Get(int id) 
{ 
} 

[Route("/Users/Tall")] 
public IEnumerable GetTall() 
{ 
} 

Mehr Informationen zu: http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2.

+0

Wo füge ich das hinzu? mein ApiController hat keine Attribute – Pacman

+0

Verwenden Sie das Attribut in Ihrer GetTall() - Methode. Siehe die aktualisierte Antwort. –

+0

Ich erhalte den folgenden Fehler: Das Parameterwörterbuch enthält einen Nulleintrag für den Parameter 'id' des nicht nullbaren Typs 'System.Int32' für die Methode 'System.String Get (Int32)' in 'RESTServices.Controllers.recordsController'. Ein optionaler Parameter muss ein Referenztyp, ein Nullable-Typ oder ein optionaler Parameter sein. – Pacman

Verwandte Themen