0

私のユーザーモデルには、アクティブと呼ばれるintプロパティがあります(モデルもデータベースも作成していないため、ブール値として使用されるため、intです..)。モデルを編集するアクション/Users/Edit/を作成しているので、アクティブなプロパティのチェックボックスを備えたフォームがあります。送信ボタンが押されると、モデル バインダーはすべてのフォーム データを 1 つのオブジェクトにまとめ、パラメーターとして に渡します/Users/Edit

しかし、変更をデータベースに保存しようとすると、チェックするModelState.isValidと false が返されます。これは、モデル バインダーがブール値を整数に変更しないためです。

どうすればこの問題を解決できますか?

4

2 に答える 2

1

1)Dbを編集して少し作ります

2)ビューモデルのプロパティをブール値に変更します

3) Razor View で DisplayFor を使用する

チェックボックスが自動的に生成され、それに応じてチェックされるようになりました。

于 2013-05-31T21:12:55.627 に答える
0

Db を bool に変更できないという最悪のケースを想定しましょう。次に、View Model を使用してデータ変換を実行します。

あなたのユーザーモデルがそのようなものだとしましょう:

public class StaticModel {

    public string description { get; set; }
    public int IsActive { get; set; }

}

次に、ビュー モデル (ファサード スタイル) を作成します。

public class StaticModelFacade {

    StaticModel _value;    

    public StaticModelFacade(StaticModel value) {

        _value = value;

    }

    public string description {
        get {return _value.description;}
        set {_value.description = value;}
    }

    public bool IsActive {
        get { return _value.IsActive = 1; }
        set { _value.IsActive = value ? 1 : 0 }
    }

}

ビューがブール値にバインドされ、すべてが接続されました。

于 2013-05-31T21:17:26.490 に答える