【发布时间】:2020-06-14 03:44:38
【问题描述】:
我使用 .net core 3.1.1
当我像这样使用 asp-action 时在 mvc 区域中
<a asp-action="Index2">Index2</a>
未正确生成链接(缺少区域名称)
生成链接:http://localhost:49770/Home/Index2
但正确的链接是http://localhost:49770/admin/Home/Index2
我使用端点路由
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapAreaControllerRoute(
"area",
"Admin",
"{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
});
但是何时使用旧路由(usemvc)asp-action 正确生成链接
http://localhost:49770/admin/Home/Index2
app.UseMvc(routes =>
{
routes.MapRoute(
name : "areas",
template : "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
});
任何人都可以帮助我使用 asp-action 进行端点路由 谢谢
【问题讨论】:
-
您好,欢迎来到 Stack Overflow。如果我的理解是正确的,我假设这些链接来自该区域内的 Razor 视图,并且您期望它们在 URL 中隐式包含区域名称,因为在给定上下文的情况下应该假设。对吗?
-
不过,一般来说,您通常会使用
asp-area标签助手和asp-action来指定目标区域(source)。
标签: c# .net asp.net-core asp.net-core-mvc