问题描述
我的控制器在某些文件夹中,当编写其路由时,我会手动添加路由属性。如下所示:
[Route("api/myfolder1/[controller]")]
[ApiController]
public class FormulaController : ControllerBase
{
....
}
是否有解决方案来解决在控制器中手动将文件夹名称添加到“路由属性” 的问题? 谢谢
解决方法
按照@poke的建议,使用区域。
步骤1。将控制器移至
Areas
文件夹。
步骤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");
}
}
测试屏幕截图