简体   繁体   English

Asp.net 核心:使用文件夹名称路由 Controller

[英]Asp.net Core: Route Controller with Folder Name

My Controllers inside some folders and when writing theirs routes, I add manually Route Attribute.我的控制器在一些文件夹中,在编写他们的路由时,我手动添加了路由属性。 like this below:像下面这样:

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

is any solution to resolve manually adding folder name to Route Attribute in controllers?是否有解决手动将文件夹名称添加到控制器中的路由属性的解决方案? thanks谢谢

as @poke suggest, Use Areas .正如@poke 建议的那样,使用区域

Step1.步骤1。 Move you controllers to Areas folder.将您的控制器移动到Areas文件夹。

在此处输入图像描述

Step2.第2步。 Add area route to Startup.cs将区域路由添加到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?}");
        });

Step3.第三步。 Add [Area] attribute to your controller将 [Area] 属性添加到您的 controller

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

Screenshots of test测试截图

在此处输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM