0

私のモデルにはいくつかのプロパティがあり、そのうちの1つはクラスの配列であり、モデルの一部のプロパティと配列クラスはdatannotation属性から使用します。ビューのユーザーでは、一部の行を配列およびその他のモデル プロパティとして入力し、行 (arrayProperty) の一部を削除する場合があります。削除された行のステータス:delete を設定し、実際に配列から削除された行を削除します。操作手順は次のとおりです。

  1. 初めてのアクションでは、すべてがOKです(検証が完了しました)
  2. modelState.Clear
  3. 状態が削除されている配列内のアイテムを削除する
  4. 洗練されたモデルを検証するために 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; }          
}
4

0 に答える 0