gpt4 book ai didi

asp.net - Dynamic CheckBoxFor 禁用了一些

转载 作者:行者123 更新时间:2023-12-05 00:00:28 26 4
gpt4 key购买 nike

我正在尝试创建一个动态 CheckBoxFor,其中某些项目被禁用。

这是禁用一切:

@Html.CheckBoxFor(m=>m.Checked, new { @disabled = "disabled"})

我试图创建这样的东西但没有成功:
@Html.CheckBoxFor(m=>m.Checked, new{ @disabled = @(Model.Disable ? "disabled" : "")})

注意,我的模型有一个名为 Disabled 的属性和另一个 Checked 属性。

最佳答案

它不起作用,因为 disabled 属性会禁用 CheckBox,而不管它的值是什么。

我不确定如何在一行中执行此操作,但这是一种解决方案:

@if(Model.Disabled)
{
@Html.CheckBoxFor(m=>m.Checked, new { @disabled = "disabled"})
}
else
{
@Html.CheckBoxFor(m=>m.Checked)
}

一个潜在的 Html Helper 扩展:
public static MvcHtmlString CheckBoxFor<TModel>(
this HtmlHelper<TModel> helper,
Expression<Func<TModel, bool>> expression,
object htmlAttributes,
bool isDisabled)
{
var dic = htmlAttributes.GetType()
.GetProperties()
.ToDictionary(p => p.Name, p => p.GetValue(htmlAttributes, null));

if (isDisabled)
dic["disabled"] = "disabled";

return helper.CheckBoxFor(expression, dic);
}

关于asp.net - Dynamic CheckBoxFor 禁用了一些,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10132962/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com