asp.net-core-mvc - Can't generate proper anchor link in .net core 3.0
问题描述
I am trying to create a link like https://localhost:44332/training/course/1/buy
. Below is my code to generate it:
.cshtml:
<a asp-controller="training"
asp-action="course"
asp-route-id="1"
asp-route-type="buy">Buy now</a>
Startup.cs:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute(
name: "Buy",
pattern: "{controller=Home}/{action=Index}/{id?}/{type=buy}");
endpoints.MapRazorPages();
});
But it generates link like https://localhost:44332/training/course/1?type=buy
Can anyone tell me, where I made the mistake? How to generate my expected link?
解决方案
您需要将自定义路由映射放在默认路由映射之前,然后用其他词替换buy
in或仅使用{type=buy}
{type=test}
{type}
最终代码:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "Buy",
pattern: "{controller=Home}/{action=Index}/{id?}/{type=test}");
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});
推荐阅读
- java - 用数组中的最小值替换最大值
- javascript - 获取图片alt,添加为父类
- ios - 如何在 Swift 中调试“使用未解析的标识符”?
- javascript - Eclipse 自动完成 JavaScript
- ruby-on-rails - 在当前活动记录/ sql 查询上使用连接、顺序、不同进行优化
- swagger - MuleSoft 是否支持 OpenAPI 3.xx 规范?
- java - 在 JavaFX 中播放 H.264 编码流
- django - Django没有从媒体文件夹加载图像
- node.js - 用于firebase初始化功能的节点js模块导出
- python - 即使在安装了六个之后,仍然面临“缺少 XCode 依赖项:Python 模块“六””