嗨,我正在使用这个代码,但是asp-area不工作
<a asp-area="Admin" asp-controller="Sliders" asp-action="Delete" asp-route-Id="@item.SliderId" class="btn btn-info btn-sm">Delete</a>
没有找到网址:https://localhost:44306/Sliders/Delete/3?area=Admin 的网页所有带区域的路由都工作得很好,Sliders控制器有area属性;
我认为问题是在startup
类中定义路由的顺序。我相信你现在有这样的(非区域路由在区域路由之前):
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.MapControllerRoute(
name: "defaultWithArea",
pattern: "{area=Admin}/{controller=Home}/{action=Index}/{id?}");
尝试改变它们的顺序(先做区域路线后做非区域路线)。并确保从区域路由中取消设置默认区域,即:
app.MapControllerRoute(
name: "defaultWithArea",
pattern: "{area}/{controller=Home}/{action=Index}/{id?}");
否则,任何没有area的链路将被映射到startup
中定义路由时使用的默认区域