これは説明するのが少し難しいので、もっと詳細が必要かもしれません。
私は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 の開始時に検証を停止する別の方法はありますか?