【问题标题】:ASP.NET MVC CheckBoxFor "Cannot Convert from bool to system.linq.<type,bool>"ASP.NET MVC CheckBoxFor "无法从 bool 转换为 system.linq.<type,bool>"
【发布时间】:2020-10-05 03:39:12
【问题描述】:

如果属性(布尔)设置为 true,我只是想让一个复选框显示选中状态。

这是一个项目列表,所以我为列表中的每个项目做一个,然后抓住我正在检查的属性HasImage。如果这是真的,我希望每个项目都有一个复选框。

我收到了错误

参数类型 'bool' 不能分配给参数类型 system.linq.expressions.expression-system.func rma-vm,bool

到底发生了什么?

我的代码:

@foreach (var item in model.rmalist)
    <td>@Html.CheckBoxFor(item.HasImage)<td>

【问题讨论】:

标签: c# html asp.net-mvc linq razor


【解决方案1】:

Html.CheckBoxFor 从输入中获取 Func。你应该试试这个:

@Html.CheckBoxFor(m=> m.HasImage)

【讨论】:

  • 这不起作用,因为“HasImage”在 RmaObjects 列表中,M => m.RmaObjects 是所有显示的内容,因为 hasimage 属性在其中。我认为执行 foreach 循环会清除它,但我想不会。
【解决方案2】:

您可以使用以下语法根据值选择/取消选择复选框

如果 HasImage 可以为空,则低于格式

@Html.CheckBox("HasImage", (item.HasImage?? false) ? item.HasImage: false)

如果 HasImage 不可为空,则只需保留该值

@Html.CheckBox("HasImage", item.HasImage)

【讨论】:

    猜你喜欢
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多