2016-08-11 4 views
2

Ich beziehe hier verbindlich Parameter:Kann die ASP.Net WebApi-Standardparameterbindung für Abfrageparameter verwendet werden, die den Gedankenstrich ("-") enthalten?

http://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api

Aber die Abfrageparameter, die ich binden wollen, ist ‚api-Version‘, die keine juristische C# Kennung ist. Was ist der einfachste Weg, diese Bindung an eine C# -Eigenschaft mit dem Namen 'ApiVersion' zu binden [genau so, als wäre der Abfrageparameter tatsächlich 'apiVersion =']?

Antwort

0

Verwenden JSON.NET JsonProperty Attribut Magie,

[JsonProperty(PropertyName="api-version")] 
public int ApiVersion { get; set; } 
+0

Es Arbeit mit einem json Nutzlast Körper woanders vermutlich würde aber für mich funktioniert nicht, wenn es sich um eine Abfrage-Parameter in der URI ist „? Api-version =“ –

+0

'-' tatsächlich unreserviert nach der RFC-Spezifikation . Hmmm – naveen

0

Das FromUri Attribut verfügt über eine optionale Name Eigenschaft.

public IHttpActionResult Version([FromUri(Name="api-version")] string apiVersion) 
{ 
    ... 
} 
Verwandte Themen