You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8项目升级后Tag Helper失效,该如何修复?

问题描述

我在视图中使用了以下标签:

<input type="hidden" asp-for="ID" value="@Model.ID" />

Views根目录下存在_ViewImports.cshtml文件,内容为:

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

该功能在.NET 7中可正常运行,但升级到.NET 8后失效,请问我缺少了什么配置才能使其恢复正常?

解决方案

.NET 8对Tag Helper的行为做了变更:当同时使用asp-for和手动指定原生value属性时,Tag Helper会优先使用模型绑定的值覆盖手动设置的value。如果你的模型ID属性是默认值(比如0或null),最终生成的input的value就会是空或默认值,导致功能失效。

你有两种解决方式:

  • 方式一:移除手动设置的value="@Model.ID",asp-for会自动绑定模型的ID值,无需手动指定:
    <input type="hidden" asp-for="ID" />
    
  • 方式二:若必须手动控制value值,改用asp-value属性替代原生value,Tag Helper会正确识别并使用你指定的值:
    <input type="hidden" asp-for="ID" asp-value="@Model.ID" />
    

另外确认你的_ViewImports.cshtml中@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers的配置是正确的,不需要额外添加其他Tag Helper引用。

内容的提问来源于stack exchange,提问作者jstuardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 02:04:55