我已经设置了“基本”路线启动.cs没有任何异常(一个用于标准布线,另一个用于区域)。具体如下:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "Areas",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});
现在,有了这两个,我可以导航(尽管是手动的)到我想要的路线。下面是我对一个动作的属性路由:
[Route("Admin/Artists/{artistId:int}/Albums")]
public async Task<IActionResult> Albums(int artistId)
{
var albums = await Mediatr.Send(new GetAlbumsForArtistRequest { ArtistId = artistId });
return View(albums);
}
我可以成功地浏览到那条路线
我的观点出现了。然后尝试使用锚定标记辅助对象:
<a asp-area="Admin" asp-controller="Artists" asp-action="Albums" asp-route-artist-id="@ViewData["ArtistId"]" class="btn btn-info">Albums</a>
生成的URL不正确(由于未定义此路由,因此引发异常):
/Admin/Artists/Albums
/Admin/Artists/558/Albums
我试过在这方面找人帮忙
Anchor Tag Helper documentation