publicと呼ばれるフィールドに関連して私のビューに表示したいチェックボックスがあります。これは基本的に特定の行がpublicかどうかを示します。データベースでは、これはビットフィールドですが、これまでテーブルがどのように動作していたかによって、NULLが許されます。MVCはnull可Boolを持つHtml.CheckBoxForを使用します
私はHtml.CheckBoxForを使用していますが、システムではboolタイプではなくむしろboolなので、このフィールドについて不平を言っていますか?タイプ。フィールド値がnullの場合、フロントエンドでfalseとカウントされます(残念ながら、データベース値自体を更新することはオプションではありません)。
私はGetValueOrDefaultを使用してみました、とのラインに沿って私のモデルファイルにデフォルト値を入れている:それは私に次のエラーを与えて、この文句を言ったが
public class Model
{
public bool? Public { get; set; }
public SearchModel()
{
Public = false;
}
}
:
An exception of type 'System.InvalidOperationException' occurred in System.Web.Mvc.dll but was not handled in user code
Additional information: Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.
私はここからどのように進むことができるのか分からない、誰かが正しい方向に私を向けるのを助けることができますか?
EDIT:
は、この私は、チェックボックスを表示するために使用しようとしているビュー上のコードです。
Html.CheckBoxFor(model => model.Public, new {data_toggle = "toggle", data_off = "No", data_on = "Yes", data_size = "small"})
いくつかの問題 –
あなたはEFエンティティへのモデルバインディングのようですね。これは非常に柔軟性がなく、一般的には良い考えではありません。 – usr
@AlfieGoodacre良い点、私はいくつかのことを周りに変更しているし、それを逃した必要があります。変数に関しては、それがデータベース内でフィールドが呼び出されたものなので、モデルファイル内で変数名を同じにしておきました。残念なことに、データベースフィールドが呼び出されたときに何の言葉も出さなかった –