我正在使用ASP.NET Core 3.1应用程序(MVC)中的区域。
现在,我希望所有没有明确区域的请求默认都进入“Main”区域。以下是我当前设置的端点路由:
app.UseEndpoints(endpoints =>
{
// 1
endpoints.MapControllerRoute(
name: "area",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
// 2
endpoints.MapAreaControllerRoute(
name: "default",
areaName: "Main",
pattern: "{area=Main}/{controller=Home}/{action=Index}/{id?}");
});
我的目标是:
如果请求的URL包含一个已存在的区域名,则使用路由[1]。如果没有区域名,则使用路由[2](默认为“Main”区域)。
我的问题:
- 对“/main/admin”发出的请求可以正常工作。
- 对“/admin”发出的请求结果为404错误。
如何设置默认区域?
好的,问题已解决。最终,以下内容适用于我:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "area:exists}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapAreaControllerRoute(
name: "default",
areaName: "Main",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
Area
之外获取Controller
和Action
。这就是我的问题。 - Nguyễn Văn Phong