Mit der Standard-Web-API-Route
%Vor%und ein Controller
%Vor% Eine Anfrage an 'api/test/1'
gibt 1
Wenn Sie aus irgendeinem Grund eine Anfrage an 'api/test/1%20'
die Route 404's.
Nun mag dieses Beispiel albern erscheinen, da Browser nachstehende Leerzeichen trimmen, aber
für eine Route wie 'api/{controller}/{id}/{extrastuff}'
das Leerzeichen in '1 '
würde in '1%20'
konvertiert und die Anfrage wird 404 auf der Route nicht gefunden.
Ihr Problem hat nichts mit WebAPI selbst zu tun, sondern wie Asp.Net bestimmte URLs behandelt. Und Asp.Net behandelt diese URLs auf sehr paranoide Weise, also müssen Sie es sich zu entspannen .
Fügen Sie diese Zeile zu Ihrer web.config unter system.web
:
Sie können mehr zu diesem Thema lesen:
Auch auf SO:
Tags und Links asp.net-web-api c# asp.net routing asp.net-mvc-routing