2016-04-10 10 views
0

I ASPコアで経路を設定する際に問題があります。ASPコアでの経路設定

Startup.csConfigureServices()app.UseMvc()Configure()に設定しました。 /api/test/test

を発生しませんが、私は[HttpGet("test")][Route("test")]を追加する場合、それがうまく機能

[Route("/api/[controller]")] 
public class TestController: Controller 
{ 
    [HttpGet] 
    public string Test() 
    { 
     return "Hello"; 
    } 
} 

要求:

は今、私は同じアセンブリ内の単純なコントローラを持っています。ルート属性が

答えて

3

が指定されていない場合には、私は設定より規約をサポートしたいと思いますしかし

は、使用してみてください:

[Route("api/[controller]/[action]")] 
+0

これは私がこの方法を試したので非常に奇妙です。befo他のもののどれか。ありがとう – deeptowncitizen

0

あなたがコントローラに[Route("/api/[controller]")]注釈を追加すると、デフォルトのルーティングがStartup.csで設定しますこのコントローラを無視してください。

だから、あなたがそれらの上に[Route("")]属性を追加することによって、そのコントローラ内部のあなたの行動の各のためのURLサフィックスを指定する必要があり、次のいずれか

[Route("/api/[controller]")] 
public class TestController: Controller 
{ 
    [Route("test")] 
    [HttpGet] 
    public string Test() 
    { 
     return "Hello"; 
    } 
} 

それともルーティングがアクションを使用する必要があることをコントローラannotaionに指定名前の一部として URL:

[Route("/api/[controller]/[action]")] 
public class TestController: Controller 
{ 
    [HttpGet] 
    public string Test() 
    { 
     return "Hello"; 
    } 
} 
関連する問題