.NET Core 3.1の.NET Core 2.2のような単純なルーティングは使用できません。
.NET Core 3.1のルーティングの最後の変更は何ですか?
.NET 3では、Routingの代わりにEndpointを使用する必要があります
app.UseStaticFiles();
app.UseRouting();
//other middleware
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapRazorPages();
endpoints.MapHub<MyChatHub>();
endpoints.MapGrpcService<MyCalculatorService>();
endpoints.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
});
エンドポイントの隣では、属性ルーティングを使用することも、2つを組み合わせることもできます。
[Route("my/")]
public class MyController : Controller
[HttpGet]
[AllowAnonymous]
[Route("")] //prefer this if we asked for this action
[Route("index", Order = 1)]
[Route("default.aspx", Order = 100)] // legacy might as well get an order of 100
public async Task<IActionResult> GetIndex()
{
}
コントローラーの上記の属性を使用すると、このコントローラーにMapControllerRouteを指定する必要はありません。この例では、アクションには3つのルートがあります。