asp-action不生效需要加TagHelpers引用

在尝试按照微软官网的MVC分页示例操作时,遇到asp-action和asp-controller属性不生效的问题。问题源于缺少@addTagHelper引用,但添加后出现新的错误,提示不能同时使用href和asp-*属性。解决方法是检查并移除页面中同时含有href和asp-action的<a>标签。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

微软官网MVC分页示例地址:教程:添加排序、筛选和分页 - ASP.NET MVC 和 EF Core | Microsoft Learn

在照着微软官网示例做MVC分页的时候。我加的asp-action(请求路由名称)属性一直不生效,加了asp-controller(请求只想的控制器))也不能产生请求到后端。 而单独查asp-action不生效还很难查出所以然,最后在某个链接的不起眼文字里得到了提示, asp-action 是razor语法的一种增强功能,我个人觉得有点类似于vue的v-mode   v-if之类的语法,  使用asp-action必须要在cshtml页面的顶部引入@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers,比如我的如下图:

加上上述引入代码之后,我重新编译执行对应页面,页面又报错了,错误如下:

{"message":"Cannot override the 'href' attribute for <a>. An <a> with a specified 'href' must not have attributes starting with 'asp-route-' or an 'asp-action', 'asp-controller', 'asp-area', 'asp-route', 'asp-protocol', 'asp-host', 'asp-fragment', 'asp-page' or 'asp-page-handler' attribute.","status":false}

我一开始以为是引入的那段代码有问题,查了半天没查出所以然,最后将上面这段报错翻译了一下,得到如下翻译结果:

{"message":"不能覆盖<a>的'href'属性。指定了'href'的<a>不能有以'asp-route-'开头的属性,也不能有'asp-action'、'asp-controller'、'asp-area'、'asp-route'、'asp-protocol'、'asp-host'、'asp-fragment'、'asp-page'或'asp-page-handler'属性。"

这意思是我的页面里,某些<a> 标记中 href 和asp-action 属性重复了吧,然后我挨个找<a开头的标记,果然找打了两个<a> 标记里有href也有asp-action,那就去掉href。 然后就执行成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值