Ist es möglich, uritemplates zu "überladen"?

8
%Vor%

Ist das möglich - wenn nicht, kann jemand eine Alternative vorschlagen?

    
Pones 09.09.2010, 11:18
quelle

3 Antworten

9

Ich habe festgestellt, dass dies die beste Lösung für mich war:

%Vor%

das passt:

"http://myservice/searchresults/mysearchterm"

"http://myservice/searchresults/mysearchterm/"

"http://myservice/searchresults/mysearchterm/mysearchtype"

    
Pones 09.09.2010, 12:58
quelle
1

Nein, nicht wirklich - weil der String-Parameter searchType NULL sein kann - Sie haben also wirklich keine Möglichkeit, die beiden URL-Vorlagen zu unterscheiden. Anders wäre es, wenn Sie einen nicht nullbaren Typ verwenden, wie zB INT oder etwas - dann könnten Sie (und die .NET-Laufzeitumgebung) die beiden URL-Vorlagen auseinander halten (basierend darauf, ob INT vorhanden ist oder nicht) ).

Was Sie tun müssen, ist nur zu überprüfen, ob searchType leer ist oder NULL in Ihrer GetSearchResults -Methode, und entsprechend handeln.

%Vor%

und in Ihrer Implementierung:

%Vor%     
marc_s 09.09.2010 11:22
quelle
0

Ich habe dies erreicht, indem ich STREAM verwendet habe, um Daten vom Client zu übergeben. Sie können sogar 2 Operationen mit demselben Namen aber unterschiedlichen Methodennamen haben. Stellen Sie sicher, dass contentType als "text / javascript" ODER "application / octet-stream" eingestellt ist. und versuchen Sie, Daten als POST aus HTML oder in Datenvariablen zu senden, wenn Sie AJAX oder jQuery

verwenden

Zum Beispiel [OperationVertrag] [WebInvoke (Methode="PUT", UriTemplate="Benutzer / ID / {ID} /", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]         String UpdateUser (Zeichenfolge-ID, System.IO.Stream-Stream);

[OperationKontrakt] [WebInvoke (Methode="DELETE", UriTemplate="Benutzer / ID / {ID} /", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]         Zeichenfolge DeleteUser (Zeichenfolge-ID);

ODER ersetzen Sie PUT und DELETE für GET und POST

    
AbhishekS 16.06.2014 12:14
quelle

Tags und Links