app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "areas",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
});
这就是我创建基本 Controller 的方式
namespace App.Areas.Applications.Controllers
{
[Area("Applications")]
[Authorize]
public abstract class ApplicationsBaseController : Controller
{
}
}
然后我的 ApplicationsController 继承了 BaseController
但是,当我设置这样的链接时
<li class="nav-item"><a asp-area="Applications" asp-controller="Applications" asp-action="Index" class="nav-link">Applications</a></li>
这是显示在我的 url https://localhost:44338/Applications?area=Applications 中的链接,但我无法找到页面。
设置我的区域时我错过了什么?
编辑:
当我在 [Area("Applications")] 之后添加 [Route("Applications/[controller]")] 时,出现此错误
最佳答案
把它放在默认路由之前......像这样
app.UseMvc(routes =>
{
routes.MapRoute(
name: "areas",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
关于c# - ASP.NET Core 2.1 区域路由不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52574808/