asp-controller和asp-action属性不起作用

luc*_*cas 32 asp.net-core-mvc asp.net-core

谁会知道我缺少什么,为什么那些asp-controller和asp-action标签对我不起作用.我正在ASP.NET MVC Core中实现一个项目.

这不会触发:

<a asp-controller="App" asp-action="Trips" class="btn btn-lg btn-success">Go to Trips</a>
Run Code Online (Sandbox Code Playgroud)

剃刀工作正常:

@Html.ActionLink("Go to Trips", "Trips", "App", new object { }, new { @class = "btn btn-lg btn-success" })
Run Code Online (Sandbox Code Playgroud)

我是否需要配置一些服务才能正常工作.而且,哪种方式更受欢迎?Razor很受MVC的欢迎,那些asp标签是一种新的,更好的方式吗?

luc*_*cas 70

经过一些挖掘后,我发现asp-controller和asp-action属性被称为锚标记助手,并且是

Microsoft.AspNetCore.Mvc.TagHelpers命名空间

显然它是使用Razor的替代方案.我能够通过创建'_ViewImports.cshtml'并将以下内容添加到文件中来解决此问题:

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
Run Code Online (Sandbox Code Playgroud)

完成后,识别锚标记助手并按钮开始按预期工作.

  • 出现此问题时,正在创建自己的区域.我刚刚复制了现有的_ViewImports.cshtml然后它工作了,谢谢! (7认同)
  • 因为脚手架实际上不可能包含所需的参考文献...... (3认同)
  • 为什么在 ASP.NET Core MVC 项目中工作时应将 asp 属性视为助手?代码异味……但这个答案解决了我的问题。 (2认同)

小智 11

添加@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers到 cshtml 文件的顶部即可。


小智 9

使用 Areas 时,我必须将 _ViewImport 复制到新的 Area\MyArea\Views