2016-07-11 9 views
13

ASP.NET MVCコア(RC2)アプリケーションでクエリ文字列をバインドするモデルクラスがあります。ASP.NETコアのモデルバインディングで、下線をタイトルケースのプロパティ名に対応させよう

OAuthの仕様を確認するために、クエリ文字列キーにアンダースコアをサポートする必要がありますが、私のアプリケーションではタイトルケースのプロパティ名を使用したいと考えています。

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

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以前のものを念頭に置いて書かれています。構文が変更されました。

ありがとうございます。

+1

モデルバインダーは非常に複雑である必要はありません、そして、彼らは間違いなくあなたが –

+0

を達成しようとしている何のために右のエントリポイントですhttps://docs.asp.net/en /latest/mvc/models/model-binding.html – Set

+0

しかし、データ転送オブジェクト(ビジネスロジックDTO)で変換されたデータビューオブジェクト(コントローラモデル)は、このアプローチでは問題が見られないmvcモデルでは一般的です – SilentTremor

答えて

17

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; } 
} 
+0

素晴らしい。私はそれを試してみましょう、ありがとう! – JamieNewman

+0

パーフェクト。まさに私が探していたもの。 – JamieNewman

+1

POSTリクエストに相当するものはありますか? – dalemac

関連する問題