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
相关产品推荐
相关产品推荐

