代码之家  ›  专栏  ›  技术社区  ›  Orion

可为Null的对象必须具有值。C#MVC复选框

  •  -1
  • Orion  · 技术社区  · 8 年前

    我遇到了这个问题,不知道如何解决。

    模型

    public bool? Rem1SendToEmail1 { get; set; }
    

    看法

    @Html.CheckBoxFor(m => m.Rem1SendToEmail1.Value)
    

    控制器

    smsAccount.Rem1SendToEmail1 = ClientSMSAccountModal.Rem1SendToEmail1.Value;
    

    错误

    可为Null的对象必须具有值。 描述:执行当前web请求期间发生未经处理的异常。请查看堆栈跟踪以了解有关错误的更多信息,以及错误在代码中的起源。

    Exception Details: System.InvalidOperationException: Nullable object must have a value.
    

    当我尝试将视图更改为

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

    我得到以下错误:

    编译错误 描述:编译服务此请求所需的资源时出错。请查看以下特定错误详细信息,并适当修改源代码。

    编译器错误消息:CS0266:无法隐式转换类型“bool”到“bool”。存在显式转换(是否缺少转换?)

    1 回复  |  直到 8 年前
        1
  •  0
  •   Orion    8 年前

    使用注释中提供的帮助,我将代码更改如下,并解决了nullbale错误:

    看法

    @Html.EditorFor(m => m.Rem1SendToEmail1) 
    

    模型

    public bool Rem1SendToEmail1 { get; set; }
    

    控制器

    smsAccount.Rem1SendToEmail1 = ClientSMSAccountModal.Rem1SendToEmail1;