ASP.NET MVC中的复选框已禁用属性

 u39722555 发布于 2023-02-06 13:14

我的ViewModel具有selected和selectable属性.两者都是布尔值.我希望我的视图有一个复选框,当selectable为true时启用,当selectable为false时禁用.什么是正确的剃刀语法来实现这一目标?

我在表格中的项目列表上尝试了下面的代码.无论可选值如何,每行都会返回一个禁用的复选框.

 @Html.CheckBoxFor(modelItem => item.Selected, new { @disabled = !item.Selectable })

Shyju.. 77

这是不容易有达到这个if条件的辅助方法,因为所有的下方标记将呈现一个残疾人chechbox.






这应该在剃须刀中起作用.简单如果条件和渲染你想要的.

@if(item.Selected)
{ 
  @Html.CheckBoxFor(modelItem => item.Selected)
}
else
{
    @Html.CheckBoxFor(modelItem => item.Selected, new { @disabled = "disabled"})
}

您可以考虑编写一个自定义的html帮助程序,为此呈现正确的标记.

2 个回答
  • 这是不容易有达到这个if条件的辅助方法,因为所有的下方标记将呈现一个残疾人chechbox.

    <input type="checkbox" disabled>
    <input type="checkbox" disabled="disabled">
    <input type="checkbox" disabled="false">
    <input type="checkbox" disabled="no">
    <input type="checkbox" disabled="enabled">
    

    这应该在剃须刀中起作用.简单如果条件和渲染你想要的.

    @if(item.Selected)
    { 
      @Html.CheckBoxFor(modelItem => item.Selected)
    }
    else
    {
        @Html.CheckBoxFor(modelItem => item.Selected, new { @disabled = "disabled"})
    }
    

    您可以考虑编写一个自定义的html帮助程序,为此呈现正确的标记.

    2023-02-06 13:16 回答
  • 这将无效,因为<input disabled="anything" />将导致禁用控件.应该禁用时,只需要一个@disabled属性.

    尝试这样的事情:

    @Html.CheckBoxFor(modelItem => item.Selected, item.Selectable ?  (object)new {} :  (object)new { @disabled = "disabled" })
    

    请注意,您可能需要转换为 (object)

    2023-02-06 13:18 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有