Asp.net Core:具有文件夹名称的路由控制器

问题描述

我的控制器在某些文件夹中,当编写其路由时,我会手动添加路由属性。如下所示:

   [Route("api/myfolder1/[controller]")]
    [ApiController]
    public class FormulaController : ControllerBase
    {
....
    }

是否有解决方案来解决在控制器中手动将文件名称添加到“路由属性的问题? 谢谢

解决方法

按照@poke的建议,使用区域

步骤1。将控制器移至Areas文件夹。

enter image description here

步骤2。将区域路线添加到Startup.cs

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllerRoute(
                name: "myArea",pattern: "api/{area:exists}/{controller=Home}/{action=Index}/{id?}");

            endpoints.MapControllerRoute(
                name: "default",pattern: "{controller=Home}/{action=Index}/{id?}");
        });

第3步。将[Area]属性添加到您的控制器

[Area("myfolder1")]
public class FormulaController : Controller
{
    public IActionResult Index()
    {
        return Json("Helll formula/index");
    }
}

测试屏幕截图

enter image description here