Sonntag, Mai 31, 2020

Pass Id und String, WebAPI Holen

Im mit der Neuen MVC-Web-Api, ich habe so etwas wie dieses:

    public class CustomersController : ApiController
    {
  public HttpResponseMessage Get()
        {
            //Return Somethings
        }
    }

Rufe ich es mit /api/Kunden

nun möchte ich in der Lage sein, filtern Sie nach Nationalität und id also machte ich dies :

public class CustomersController : ApiController
{
    public HttpResponseMessage Get(int Id, String Nat)
    {
        //and i filter here Return Somethings
    }
}

wenn ich versuche, mit /api/customers/1/us es nennen, die erste Methode, ich verstehe, dass diese Abfrage-strings, also wie definiere ich die route so, die ich nutzen kann /api/customers/1/us ?

/api/customers/1/uns ist ein embedded value im Gegensatz zu einem query-string. Leider bin ich nicht sicher, warum es ist nicht das aufrufen der überladenen Bekommen. Überprüfen Sie die route vielleicht?

InformationsquelleAutor Stacker | 2012-09-21

1 Kommentar

  1. 4

    Etwas wie dies sollte den trick tun

    routes.MapHttpRoute(
         name: "CustomersByIdAndNat",
         routeTemplate: "api/customers/{Id}/{Nat}/",
         defaults: new { controller = "Customers" }
    );

    Und als eine Randnotiz, /1/us ist nicht der querystring. Querystring ist, was kommt nach ? symbol auf urls. Zum Beispiel in deinem Fall, könnte so etwas wie dieses

    api/customers/?id=1&nat=us

    Nicht sagen, dass Sie sich ändern müssen, das url-format, einfach zu erklären, das Konzept.

    InformationsquelleAutor Claudio Redi

Kostenlose Online-Tests