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

Tag Helper中根据Model.Id禁用SelectBox失效问题求助

解决Select Tag Helper条件禁用问题

你的代码无法生效的原因是:直接输出"disabled"字符串会被当成普通文本,而不是正确添加HTML的disabled属性。HTML中disabled是布尔属性,只要该属性存在,元素就会被禁用,需要用Tag Helper支持的方式来控制属性是否渲染。

给你两种可行的解决办法:

方法一:使用条件属性绑定

这是最简洁的方式,直接通过布尔值控制disabled属性的存在:

<select asp-for="DiscountTypeIndex" class="form-control" 
        asp-items="Html.GetEnumSelectList<DiscountType>()" 
        disabled="@(Model.Id > 0)">
</select>

当Model.Id > 0为true时,会渲染出disabled="disabled"属性,下拉框被禁用;为false时,该属性不会被渲染,下拉框正常可用。

方法二:通过三元运算符返回null控制属性渲染

如果需要更灵活的逻辑,可以用三元运算符,条件不满足时返回null,Tag Helper就不会渲染该属性:

<select asp-for="DiscountTypeIndex" class="form-control" 
        asp-items="Html.GetEnumSelectList<DiscountType>()" 
        @(Model.Id > 0 ? "disabled" : null)>
</select>

这种写法和方法一效果一致,只是通过返回null来避免渲染属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 19:46:18