2017-02-24 4 views
0

私はASP.NETコアと属性ルーティングを使用しています。厳密に型指定されたモデルを使用するときにクエリ文字列からプロパティを隠す

私はこの強く型付けされたモデル

public Command 
{ 
    public int Id { get; set; } 
} 

を持っており、このアクション

[HttpPost] 
[Route("my route here")] 
public IActionResult Foo(Command command) { ... } 

だからルートはこの

.../whatever/foo?id=5 

のように見えます。しかし、私は

.../whatever/foo/5 
をしたいです3210

プロパティをint?に変更しようとしましたが、それは役に立ちません。

答えて

3

入力パラメータを使用して経路を定義することができます。

.../whatever/foo/{id} 

提供されたパラメータにアクセスする場合は、メソッドパラメータとして追加できます。

public IActionResult Foo(Command command, int id) { ... } 
+0

ルート(マジック文字列として)と厳密に型指定されたモデルとの間のルーティング知識の漏洩/重複が残念です。これはうまくいきますが、もっと良い方法があることを望みます。 – grokky

+1

'int id'パラメータは必要ありません。' DefaultModelBinder'は 'public int Id {get;セット; } '名前は –

+0

@StephenMueckeと一致するため、モデルのプロパティは合意しましたが、答えの最初の部分は正しいです。 – grokky

関連する問題