2016-03-27 6 views
0

mvcコアが進んでいるという新しい方向性を本当に楽しんでいる限り、私が一歩前進したと感じていることは、ルートを設定することです。私が構築しているアプリケーションには50以上の異なるルートがあり、startup.csにこれらのルートをすべて入れることは、すべてのルートのためにいつかは扱いにくくなるようです。startup.csからmvcルートを分割することは可能ですか?

mvcの以前のバージョンと同じように、ルートを独自のオブジェクトまたはミドルウェアに分割することは可能ですか?

答えて

2

ルートは、アノテーションを使用して、直接、各コントローラに定義することができます

これらのアノテーションを使用して
namespace Example.WebApp 
{ 
    [Route("api/sheep")] 
    public class SheepController : Controller 
    { 
     [HttpGet("{id}")] 
     public IActionResult Get(long id) 
     { 
      return new ObjectResult("Example"+id); 
     } 
     [HttpPost] 
     public void Post([FromBody]ComplexObject obj) 
     { 
     } 
     [HttpGet("horse/{id}/{chicken}")] 
     public void AnotherGet(long id, string chicken) 
     { 
     } 
    } 
} 

、あなたはすべてのことの複雑さがStartup.csにすることなく、任意の複雑なURIスキームを構築することができます - しかし、欠点を複数のコントローラ間で矛盾するURIを作成しないようにする責任を負う必要があるということです。

+0

これはmvc1-5よりはるかに優れていますが、このような複雑なルートを作成することもできますし、startup.csにフォールバックする必要がありますか? – Marqueone

+0

@Marqueone「複雑なルート」とはどういう意味ですか?あなたは例を挙げることができますか? –

関連する問題