asp.net核心和asp-route-id

ist*_*hat 3 asp.net-core-mvc asp.net-core asp.net-core-routing asp.net-core-tag-helpers

我创建了一个带有该签名的联系人控制器:

public IActionResult Index(string id)
Run Code Online (Sandbox Code Playgroud)

路线表中没有什么花哨的东西:

app.UseMvc(routes =>
{
    routes.MapRoute(
    name: "default",
    template: "{controller=Home}/{action=Index}/{id?}");
});
Run Code Online (Sandbox Code Playgroud)

在我的主视图中,我尝试创建一个指向联系人/索引的链接:

<a asp-controller="Contact" asp-route-id="3255">Contact me</a>
Run Code Online (Sandbox Code Playgroud)

生成的链接似乎很好,并采取正确的行动.无论有没有asp-action,生成的链接都是:

<a href="/Contact/Index/3255">Contact me</a>
Run Code Online (Sandbox Code Playgroud)

但是没有设置id.但是当我复制链接并执行"粘贴并转到"时,会设置id参数.如果我查看页面源并单击生成的链接,它也可以工作.单击页面上的链接时,它不起作用.

你能告诉我有什么问题吗?

Nko*_*osi 7

给定配置的路由,

路线需要包括 action

<a asp-controller="Contact" 
   asp-action="Index" 
   asp-route-id="3255">Contact me</a>
Run Code Online (Sandbox Code Playgroud)

哪个应该生成

<a href="/Contact/Index/3255">Contact me</a>
Run Code Online (Sandbox Code Playgroud)