Why is CheckBoxFor producing runtime error

后端 未结 1 472
离开以前
离开以前 2020-12-15 09:18

The field the CheckBox is wired to is nullable.

On my view I get the following error:

Cannot implicitly convert type \'bool?\' to \'bool\'

1条回答
  •  误落风尘
    2020-12-15 09:57

    Exclusive cannot be Nullable, it makes no sense to the ViewEngine when evaluating the expression. It has to either check or not check the checkbox and also respond with a true or false value. Your model needs to have a bool value but that doesn't mean your database has to know that. You just have to do a translation somewhere between the database and the Model, eg. Model.Exclusive = DAO.Exclusive ?? false.

    Without knowing what null represents in your data schema or how you generate your model objects, it's hard to give you a lot more detail than that.

    Edit: haven't tested this but you might get away with something as simple as

    public bool NoNullExclusive
    {
        get { return Exclusive ?? false; }
        set { Exclusive = value; }
    }
    

    and replacing

    <%= Html.CheckBoxFor(model => model.Product.Exclusive) %>
    

    with

    <%= Html.CheckBoxFor(model => model.Product.NoNullExclusive) %>
    

    0 讨论(0)
提交回复
热议问题