在 AspNet.Core 中,Tag Helper asp 区域不起作用
In AspNet.Core the Tag Helper asp-area doesn't work
我最近为 Update 3
更新了 Visual Studio,为 1.0 更新了 ASP.Net Core。 0.
我遵循了 documentation and I tried set up for use Areas like this https://docs.asp.net/en/1.0.0/mvc/controllers/areas.html
中的教程
然而,生成的 link 是 http://localhost:2187/?area=Admin, instead of http://localhost:2187/Admin/Home/Index
更新
我的路线:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "areaRoute",
template: "{area}/{controller=Home}/{action=Index}");
});
怎么了?
解决方案
问题出在答案提到的路线顺序上。
这表示您没有注册某个区域的路线。
区域路线示例:
app.UseMvc(routes =>
{
routes.MapRoute(name: "areaRoute",
template: "{area}/{controller=Home}/{action=Index}");
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}");
});
更新:
您必须重新排序路线,因为在这种情况下,第一条路线将被匹配。我建议看一下 routing docs 以了解顺序的重要性。
我最近为 Update 3
更新了 Visual Studio,为 1.0 更新了 ASP.Net Core。 0.
我遵循了 documentation and I tried set up for use Areas like this https://docs.asp.net/en/1.0.0/mvc/controllers/areas.html
中的教程然而,生成的 link 是 http://localhost:2187/?area=Admin, instead of http://localhost:2187/Admin/Home/Index
更新
我的路线:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "areaRoute",
template: "{area}/{controller=Home}/{action=Index}");
});
怎么了?
解决方案
问题出在答案提到的路线顺序上。
这表示您没有注册某个区域的路线。
区域路线示例:
app.UseMvc(routes =>
{
routes.MapRoute(name: "areaRoute",
template: "{area}/{controller=Home}/{action=Index}");
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}");
});
更新:
您必须重新排序路线,因为在这种情况下,第一条路线将被匹配。我建议看一下 routing docs 以了解顺序的重要性。