私はMapAreaControllerRoute()
を複数の領域に経路指定しようとしています。ただし、ASP.NET CORE 3.0では、設定する必要があるareaName:
パラメータがあり、各ルートを単一の領域に制限します。私はどのようにして使用できるかが理解できません 1複数の領域に働くルート。
ここではスタックオーバーフローに関する多くの問題を読みましたが、これはASP.NET CORE 3.0の新しい要件であるようです。 ASP.NET CORE <= 2.2では、セットを定義せずにMapRoute()
を作成できます。areaName
。
現在、Startup.cs
では、エンドポイントを次のように定義します。
app.UseEndpoints(endpoints =>
{
endpoints.MapAreaControllerRoute(
name: "Area1",
areaName: "Area1",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
endpoints.MapAreaControllerRoute(
name: "Area2",
areaName: "Area2",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
確かに、すべての分野をカバーするための単一の経路を定義する方法があるはずですか?
MapControllerRoute()
を使用して、エリアの一般的なパターンを作成できます。
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "areas",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
endpoints.MapDefaultControllerRoute();
});
_
その後、エリアコントローラはArea
属性を必要とするだけです。
[Area("AreaName")]
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
_