0

これは説明するのが少し難しいので、もっと詳細が必要かもしれません。

私はMVC3プロジェクトに取り組んでいます。多対多の関係を持つ 2 つのオブジェクトがあるため、次のようにモデルを設計しました。

オブジェクト1

int ID
IEnumerable<Object2> Object2s

オブジェクト 2

int ID
[Required]
string Name
IEnumerable<Object1> Objects1s

次に、フォームを使用して Object1 を更新したいと思いました。これには、Object2s の各 Object2 のチェックボックスのリストが含まれていました。これらは、Object2 を Object2s から削除する必要があるかどうかを確認します。ビューは次のようになります。

@Html.EditorFor(c => c.ID)

if (Model.Object2s.Count() > 0)
{
    @Html.EditorFor(c => c.Object2s)
}

注 - c.Object2s の EditorFor はカスタム EditorTemplate です。

私が抱えている問題は、各 Object2 オブジェクトに Name プロパティが設定されていないため、サーバー側の検証が開始されてエラーが報告されることです。Object1 を更新するためだけに Name プロパティは重要ではありません。

IEnumerable<Object>オブジェクトをではなく で定義するのは間違っていましたIEnumerable<int>か?

または、Object2 の開始時に検証を停止する別の方法はありますか?

4

1 に答える 1

0

OK、私が望むものを正確に解決することはできませんでしたが、Object2sプロパティをバインドしないことでこの特定の問題を回避しました。代わりにint[]、コントローラーで選択されたチェックボックスを選択し、それを使用してObject2sプロパティを設定しています。

于 2012-07-25T11:40:08.887 に答える