2017-09-29 12 views
0

ASP.NET Core 2.0で動作するデフォルトルートを取得できないようですが、何か見落としていますか?ASP.NET Coreデフォルトルートno working

Startup.cs

public class Startup 
{ 
    public IConfiguration Configuration { get; set; } 

    public Startup(IConfiguration configuration) 
    { 
     Configuration = configuration; 
    } 

    public void ConfigureServices(IServiceCollection services) 
    { 
     services.AddMvc(); 
    } 

    public void Configure(IApplicationBuilder app, IHostingEnvironment env) 
    { 
     app.UseMvc(routes => 
     { 
      routes.MapRoute("default", "{controller}/{action}/{id?}", new { controller = "Home", action = "Index" }); 
     }); 
    } 
} 

HomeController.cs

[Route("[controller]")] 
public class HomeController : Controller 
{ 
    public IActionResult Index() 
    { 
     return View(); 
    } 
} 

whenIサーフURLには、何も何もホームにリダイレクトする、起こりませんか?

+0

あなたはどのようなURLをしようとしていますか? – Shyju

+0

http:// localhost:5000 – TanguyB

+0

localhost:5000/Homeに移動すると、そのページが表示されます。それはデフォルトとしてそれを取っていません... – TanguyB

答えて

7

コントローラの[Route("[controller]")]デコレーションを削除するだけです。デフォルトで

public class HomeController : Controller 
{ 
    public IActionResult Index() 
    { 
     return View(); 
    } 
} 

あなたは、従来のルートパターンとUseMvc方法に登録ルーティング、今ではyourBaseUrlyourBaseUrl\HomeyourBaseUrl\Home\Index

のために働く必要があり通常は、ルートとしてコントローラレベルで[Route("[controller]")]属性を使用そのコントローラーのすべてのルートの接頭辞を使用して、アクションメソッドのカスタム属性ルート定義を作成します。

[Route("[controller]")] 
public class HomeController : Controller 
{ 
    [Route("myseofriendlyurlslug")] 
    public IActionResult Index() 
    { 
     return View(); 
    } 
} 

今すぐあなたのアクションメソッドは、上記のようなルーティング属性を使用した場合、従来のルーティングパターンが動作しません、覚えておいてくださいyourBaseUrl/Home/myseofriendlyurlslug

を経由してアクセスできるようになります。

1

この作品罰金

//Startup.cs

... 

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

... 

//HomeController.cs

... 

public class HomeController : Controller 
{ 
    public IActionResult Index() 
    { 
     return View(); 
    } 
} 

....