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

Asp.Net Core MVC使用Tag Helper向控制器传值部分字段失效如何解决

问题根因

你给Id、Name对应的<input>元素设置了disabled属性,按照HTML标准,disabled状态的表单控件的值不会被浏览器提交到服务端;而Exists对应的复选框没有加disabled属性,所以值可以正常传递,就出现了你遇到的问题。

解决方法

根据你的实际需求选择对应方案即可:

方案1:需要展示字段但不允许用户修改

把disabled属性替换为readonly属性即可:readonly状态的输入框用户无法编辑,但字段值会正常提交到后端。
修改后的输入框代码如下(顺便修正你原代码中Name输入框id重复的问题):

<input asp-for="@Model.Id" type="text" class="form-control" id="lblId" readonly>
<input asp-for="@Model.Name" type="text" class="form-control" id="lblName" readonly>

方案2:需要保持输入框禁用的UI效果

保留disabled的展示输入框,额外新增对应字段的隐藏域来传递值:

<!-- 展示用的禁用输入框 -->
<input asp-for="@Model.Id" type="text" class="form-control" id="lblId" disabled>
<!-- 隐藏域负责提交值 -->
<input type="hidden" asp-for="@Model.Id" />

<!-- Name字段同理 -->
<input asp-for="@Model.Name" type="text" class="form-control" id="lblName" disabled>
<input type="hidden" asp-for="@Model.Name" />

方案3:允许用户编辑字段

直接删除Id、Name输入框的disabled属性即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:36:07