Csharp/C#教程:带有Html Helper的条件html属性分享


带有Html Helper的条件html属性

我正在使用Html助手创建一个复选框。 在某些情况下,我想将disabled属性添加到htmlAttribute对象。 我有以下代码:

 @if (Model.IsAuthorized) { @Html.CheckBoxFor(x => @Model.Property, new { @class = "input-class" }) } else { @Html.CheckBoxFor(x => @Model.Property, new { @class = "input-class", @disabled = "disabled" }) } 

我想让这段代码更简洁。 有没有办法在一行中有条件地添加某些html属性/没有块条件?

虽然你可以使用

 @Html.CheckBoxFor(m => m.Property, Model.IsAuthorized ? (object)new { @class = "input-class", disabled = "disabled" } : (object)new { @class = "input-class"}); 

要在一行代码中执行此操作,在您的情况下,可能会导致模型绑定失败。

CheckBoxFor()方法生成2个输入,一个value="True"的复选框和一个value="False"的隐藏输入。 如果Property的初始值为trueIsAuthorizedtrue则结果是复选框被禁用且不会发布值。 但是隐藏的输入将被提交并绑定到您的模型,导致Propertyfalse (当它应该为true

为了正确处理模型绑定,您需要if

上述就是C#学习教程:带有Html Helper的条件html属性分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 @if (Model.IsAuthorized) { @Html.CheckBoxFor(x => m.Property, new { @class = "input-class" }) } else { @Html.HiddenFor(m => m.Property) // necessary to post back the initial value  } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1007897.html

(0)
上一篇 2021年12月29日
下一篇 2021年12月29日

精彩推荐