asp.net 5 MVC6中tag-helpers和Route属性之间的奇怪行为

时间:2016-05-12 19:28:27

标签: c# html asp.net-core-mvc tag-helpers asp.net5

当我在<a>标记中使用asp-controller和asp-action用于另一个Action而不是当前的Action时,在具有[Route]属性的Controller Method调用的View中,生成的链接具有空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>

如您所见,第一个链接未正确生成。所有针对另一个Action而不是当前Action的链接都是使用空href标记生成的。

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

我为所有控制器添加了一个Route属性&amp;行动,现在它起作用。