5

<a>当我在一个标签中使用 asp-controller 和 asp-action 时,在一个由具有[Route]属性的控制器方法调用的视图中,生成的链接具有一个空href属性。

在控制器中:

public class ForumController : Controller
{
    [Route("[action]/{sectionId:int}")]
    public async Task<IActionResult> ShowSection(int sectionId)
    {
        //some code
    }
}

在视图中:

<a asp-controller="Forum" asp-action="Index">Index</a>
<a asp-controller="Forum" asp-action="ShowSection" asp-route-sectionId="@Model.ParentSection.Id">@Model.ParentSection.Name</a>

生成的html:

<a href="">Index</a>
<a href="/ShowSection/1">Général</a>

如您所见,第一个链接未正确生成。针对当前操作之外的另一个操作的所有链接都使用空href标记生成。

当我删除 ShowSection 操作的 [Route] 属性时:

<a href="/Forum">Index</a>
<a href="/Forum/ShowSection?sectionId=1">Général</a>

如您所见,链接已正确生成。

如何在保留我的[Route]属性(或使用替代方法)的同时解决此问题?

4

1 回答 1

0

我终于找到了(@haim770 评论有帮助):

我为我的所有控制器和操作添加了一个 Route 属性,现在它可以工作了。

于 2016-05-16T13:10:47.170 回答