Mit dem neuen Web-api ist es möglich, einen Haken alle Routen wieASP.NET Web API PUT mit catch-all Route
routes.MapHttpRoute(
name: "name",
routeTemplate: "api/{*id}",
defaults: new { controller = "mycontroller", id = RouteParameter.Optional}
);
mit der PUT-Methode zu benutzen? Typischerweise wird die PUT Methode wie
public HttpResponseMessage Put(string id, string body)
{
...
}
verwendet, wo body
der Körper der PUT-Anforderung ist. Doch mit einem Rast alle Route, dies scheint nicht zu funktionieren und ich erhalte die Fehlermeldung
{
"ExceptionType":"System.ArgumentException",
"Message":":"No 'MediaTypeFormatter' is available to read an object of type 'String' with the media type ''undefined''.",
"StackTrace":"..."
}
wo meine Methode put wie
public HttpResponseMessage Put(string id)
{
...
}
sieht Ich denke, ich sollte in der Lage sein, das zu verwenden, fange alle Routen, wo die Routeninformationen an den ID-Parameter übergeben werden und dass ich vom Antwortobjekt aus auf den Rumpf zugreifen kann. Irgendwelche Ideen?
+1 Ich stimme zu - der Inhaltstyp der Anfrage ist hier das Problem. –