web-dev-qa-db-ja.com

アンダースコアをタイトルケースプロパティ名にマップするASP.NET Coreのモデルバインディング

ASP.NET MVCコア(RC2)アプリケーションでクエリ文字列をバインドするモデルクラスがあります。

OAuth specsを確認するためにクエリ文字列キーでアンダースコアをサポートする必要がありますが、アプリケーションでタイトルケースプロパティ名を操作したいです。

私のモデルクラスは次のようになります:

class OauthParameters
{
    public string ClientId {get; set;}

    public string ResponseType {get; set;}

    public string RedirectUri {get; set;}
}

client_idresponse_typeredirect_uriなどのクエリ文字列をバインドします。

ASP.NET MVCコアがこれを自動的に、または属性アノテーションを介して行う方法はありますか?

カスタムモデルバインダーの作成に関するいくつかの記事を読みましたが、これらは(1)達成しようとしていることに対して過度に複雑であり、(2)RC1以前を念頭に置いて作成されており、構文の一部が変更されています。

前もって感謝します。

22
JamieNewman

ここでFromQuery属性のNameプロパティを使用できます。

例:

public class OauthParameters
{
    [FromQuery(Name = "client_id")]
    public string ClientId { get; set; }

    [FromQuery(Name = "response_type")]
    public string ResponseType { get; set; }

    [FromQuery(Name = "redirect_uri")]
    public string RedirectUri { get; set; }
}
36
Kiran Challa