提问人:Kemal 提问时间:11/12/2023 最后编辑:marc_sKemal 更新时间:11/12/2023 访问量:25
ASP.NET 核心区域链接 ( /?区域=admin )
ASP.NET Core area link ( /?Area=admin )
问:
我创建了一个区域,但我有一个问题。我在表单标签中使用带有或标记帮助程序的重定向。@url.action
<a asp-action="AddPage" asp-controller="Orders" asp-area="admin">Link</a>
或
<a href="@Url.Action("Index","Home",new{Area="admin"})">Admin Sayfasi</a>
但它不断将我重定向到这样的页面。
https://localhost:44357/?Area=admin
当我通过浏览器检查这些代码变成什么时,我看到类似这样的东西。
<a href="/Orders/AddPage?area=admin">Link</a>
<a href="/?Area=admin">Admin Sayfasi</a>
我实际上没有任何可见的代码错误发生这种情况,但我找不到原因。
我的文件中的端点扩展名如下:Startup.cs
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapAreaControllerRoute(
name:"admin",
areaName:"admin",
pattern: "admin/{controller=Home}/{action=Index}/{id?}");
});
你能帮我解决这个问题吗?
提前感谢您的帮助。
答:
0赞
Yong Shun
11/12/2023
#1
从“添加区域路径”文档中:
通常,带区域的路径应放置在路由表的较早位置,因为它们比没有区域的路径更具体。
您需要将区域路由放在路由表的开头。
app.UseEndpoints(endpoints =>
{
endpoints.MapAreaControllerRoute(
name:"admin",
areaName:"admin",
pattern: "admin/{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
评论
1赞
Kemal
11/12/2023
哇!我简直不敢相信这工作了,我多么努力地弄清楚这一点,:)谢谢。
评论