验证行,而无需 MVC ASP.NET 所有行

Validate row without requiring all rows ASP.NET MVC

提问人:catcoder 提问时间:3/23/2023 最后编辑:Xinran Shencatcoder 更新时间:3/23/2023 访问量:59

问:

目前,所有行都需要输入。这是一个问题,因为我希望用户显示所有行,以防他们需要输入大量猫,但如果一行是空白的,那应该不是问题。

所需的行为是,如果一行没有填写任何内容,则不需要该行。如果在一行中输入,则也是必需的,反之亦然。IDNumberName

一个限制是我无法安装第三方库来解决这个问题。

如何创建此行为?这是我目前的代码:

模型:

public class CatHotel 
{
   public string HotelName { get; set; }
   public CatModel[] Cats { get; set; }
}
public class CatModel 
{ 
   [Required] 
   public string IDNumber { get; set; }
   [Required]
   public string Name { get; set; }
   public string Comment { get; set; }
}

CSHTML格式:

@{ int NumberOfCats = 12; }

@for (int i = 0; i < NumberOfCats; i++)
{
   <div class="form-group">
      <div class="col-md-3">
         <div>
            @Html.TextBoxFor(model => model.Cats[i].IDNumber,
            new { @class = "form-control", placeholder = "Cat ID *"})
         </div>
      </div>
      <div class="col-md-2">
         <div>
            @Html.TextBoxFor(model => model.Cats[i].Name,
            new { @class = "form-control", placeholder = "Cat Name *"})
         </div>
      </div>
      <div class="col-md-3">
         <div>
            @Html.TextBoxFor(model => model.Cats[i].Comment,
            new { @class = "form-control", placeholder = "Comment" })
           </div>
       </div>
   </div>
}

先谢谢你。

C# ASP.NET-MVC ASP.NET-CORE 验证 剃刀

评论

0赞 Xinran Shen 3/23/2023
在我看来,你可以只在第一个显示一个输入标签,并且在输入下方有一个按钮,如果用户想输入更多的猫,他们可以点击这个按钮,然后使用 javascript 生成另一个输入标签。我想你想在一行中输入,所以我认为没有必要自己输入这个值。当用户单击按钮时,JavaScript 将生成具有自动递增值的隐藏输入标签。CatModel++CatModelIDNumber+IDNumber
0赞 catcoder 3/23/2023
谢谢,我已经考虑过 UI,但我更愿意让字段可用。我不希望用户多次单击 + 号。@XinranShen
0赞 Xinran Shen 3/24/2023
好吧,但是恐怕默认模型验证无法实现,

答: 暂无答案