私のモデルにはいくつかのプロパティがあり、そのうちの1つはクラスの配列であり、モデルの一部のプロパティと配列クラスはdatannotation属性から使用します。ビューのユーザーでは、一部の行を配列およびその他のモデル プロパティとして入力し、行 (arrayProperty) の一部を削除する場合があります。削除された行のステータス:delete を設定し、実際に配列から削除された行を削除します。操作手順は次のとおりです。
- 初めてのアクションでは、すべてがOKです(検証が完了しました)
- modelState.Clear
- 状態が削除されている配列内のアイテムを削除する
- 洗練されたモデルを検証するために TryValidateModel を使用する
これは、配列プロパティを除くモデルのすべてのプロパティで機能します
アクションコード:
public ActionResult Test(ViewModel model)
{
ModelState.Clear();
model.Array = model.Array.Where(p => p.Status != false).ToArray();
if(ModelState.IsValid){}
TryValidateModel(model);
return View();
}
クラスコード:
public class ViewModel
{
public TestClass[] Array { get; set; }
[Required]
public string Family { get; set; }
}
public class TestClass
{
[Required]
public string Name { get; set; }
public int? Age { get; set; }
public bool Status { get; set; }
}