ASP.NET MVC-Web-Api wird nicht zu Abfrage-String zu stark typisierten Parameter zuordnen
Die Anfrage-parameter ist immer null mit Web-API. Bin ich etwas fehlt mit ein stark typisiertes Objekt als parameter anstelle von einfachen Typen als Parameter.
Url
http://localhost:2222/api/v1/divisions?EventId=30
Controller-Action
public virtual ApiDivisionsResponse Get(ApiDivisionsRequest request)
{
return _apiDivisionsService.GetDivisions(request);
}
Objekt
public class ApiDivisionsRequest : ApiAuthorizedRequest
{
public ApiDivisionsRequest()
{
Page = 1;
PageSize = 10;
}
public int EventId { get; set; }
public int PageSize { get; set; }
public int Page { get; set; }
public string[] Includes { get; set; }
}
InformationsquelleAutor der Frage Mike Flynn | 2012-09-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich mich sehr und lade Sie herzlich ein, Lesen Sie die folgende Artikel, um besser zu verstehen, wie parameter-Bindung funktioniert in der Web-API. Nach der Lektüre werden Sie verstehen, dass standardmäßig die Web-API bindet query-string-Parameter zu den primitiven Typen und den request-body Inhalten zu komplexen Typen.
Also, wenn Sie brauchen, um zu binden query-string-Parameter zu komplexen Typen, die Sie benötigen, um dieses Standardverhalten außer Kraft setzen, indem Sie die Dekoration Ihrer parameter mit den
[FromUri]
parameter:Und ja, ich Stimme mit Ihnen überein - das ist eine Hölle von einem Chaos - Modell verbindlich war so einfach in Klartext ASP.NET MVC und haben Sie einen Albtraum in der Web-API. Aber wenn du einmal weißt wie es funktioniert, vermeiden Sie die Fallstricke.
InformationsquelleAutor der Antwort Darin Dimitrov