为何触发InvalidOperationException:无法重写<a>的'href'属性?
为何触发InvalidOperationException:无法重写的'href'属性?
嘿,这个问题我太熟了!咱们先把问题拆解清楚,再看怎么解决~
首先,错误提示已经说得明明白白:当你给<a>标签使用了像asp-page这类ASP.NET Core专属的路由Tag Helper属性时,绝对不能同时手动指定href属性。
原因很简单:ASP.NET Core的Tag Helper会根据你设置的asp-page、asp-action、asp-controller这类属性,自动生成对应页面/接口的完整href值。如果你手动写了href,框架就会陷入两难——到底用你写的还是自动生成的?所以它干脆直接抛出这个错误,避免冲突。
看你贴的代码:
<li class="page-item"><a asp-page="index" class="page-link" href="#">3</a></li>
这里同时用了asp-page="index"(让Tag Helper生成跳转到index页的链接)和href="#"(手动指定锚点链接),这就是触发错误的根源。
接下来给你两种解决方案,按需选择:
如果想让链接跳转到index页面:删掉手动的
href="#",让Tag Helper自动生成正确的跳转地址就行:<li class="page-item"><a asp-page="index" class="page-link">3</a></li>如果只是需要占位的锚点链接(比如分页的当前页):删掉
asp-page="index"属性,保留href="#",甚至可以给当前页加个active类和禁用状态,让样式更合理:<li class="page-item active"><a class="page-link" href="#" tabindex="-1" aria-disabled="true">3</a></li>
备注:内容来源于stack exchange,提问作者user123456
相关产品推荐
相关产品推荐

