2016-05-02 7 views
0

要求からパラメータを異なる名前でマップすることは可能ですか?アンダースコアで区切られた単語をURLパラメータとして使用したいのですが、C#コードでは通常の規則を使用したいので必要です。例:私は当初、私は、モデルバインディングは、JSONシリアライザで行ったが、おそらくそうではないものと考えASP.NET Web APIモデルバインディング - 異なるパラメータ名

public IHttpActionResult DoMethod([FromUri(Name = "")] SomeInput input) 

よう[FromUri]パラメータを使用して、要求に

?property_name=1 to property PropertyName 

。私もDataMember属性を試しましたが、これらのアプローチはうまくいきません。

public class SomeInput 
{ 
    [JsonProperty("property_name")] 
    [DataMember(Name = "property_name")] 
    public int PropertyName { get; set; } 
} 

私はカスタムバインダーについて読んでいますが、もっと簡単な方法が必要であることを願っています。 OwinとKatanaを使用してASP.NET Web API 2でこれを正しく、簡単に行う方法はありますか?

+0

ウェブAPIの設定を変更しましたか? like:フォーマッタ、コンバータなど – MaKCbIMKo

答えて

2

あなたは[FromUri]Nameプロパティを使用して、個々のパラメータの再マッピングを行うことができます。

public IHttpActionResult DoMethod([FromUri(Name = "property_name")] int propertyName) 

を使用すると、モデルバインダーを作成する必要がありますカスタムオブジェクトの内部で再マッピングします。

+0

これは解決策ではありません。私はSomeInputの中に複数のプロパティを持っています。この例では単純化されたコードのみを使用します。 –

+0

これは、必要な数のプロパティに対して行うことができます。明らかに、多くの分野では面倒です。 – dharms

+0

はい、そうですが、バリデーションのようなオブジェクトSomeInput、ドキュメント生成のコメントなど、より多くのものがあります。 –

関連する問題