2016-04-29 19 views
2

MVC 6 Webアプリケーションでルーティングの問題が発生しました。デフォルトで使用されているコントローラでrouteパラメータを設定すると、アプリケーションは404エラーを送信します。ASP.NET MVC 6のデフォルトURLでのルーティングエラー

マイルーティング構成:

 app.UseMvc(routes => 
     { 
      routes.MapRoute(
       name: "default", 
       template: "{controller=Dashboard}/{action=Index}/{id?}"); 
     }); 

マイダッシュボードコントローラ(アプリケーションの動作):

[Authorize] 
public class DashboardController : Controller 
{ 
    public DashboardController() 
    { } 

    [HttpGet] 
    public IActionResult Index() => View(new IndexViewModel()); 
} 

同じダッシュボードコントローラ(アプリケーション404エラー応答):

[Authorize] 
[Route("[controller]")] 
public class DashboardController : Controller 
{ 
    public DashboardController() 
    { } 

    [HttpGet] 
    [Route("[action]")] 
    public IActionResult Index() => View(new IndexViewModel()); 
} 
+0

/に達することができる404を返しますか? –

+0

アプリケーションをランチするときのデフォルトのURL http:// localhost:PORT_NUMBER/ – AdrienTorris

+0

@Adrien:asp.net-mvcとasp.net-mvc6タグは使用しないでください。以前のASP.NET MVCフレームワーク用であり、後でASP.NET Core MVCがバージョン1.0.0にリセットされてしまったので間違っています – Tseng

答えて

2

理由これが発生しているのは、routes.MapRouteのアプリのみで指定されたルートコントローラにはではなく、属性ベースのルーティングを使用します。 2番目の例では属性ベースルーティングを使用しているため、コントローラには属性で指定されたルート経由でしか到達できません。だから、あなたがそれをどのようなURLを使用しているダッシュボード/インデックス