【发布时间】:2021-10-20 13:01:53
【问题描述】:
我的视图中有多个复选框,在测试不同的用例时,我注意到如果我不选择任何文本框并点击提交按钮,它会将我重定向到下一页。但事实上,如果可能的话,我想添加一个必需的属性,以便用户选择至少 1 个复选框。我尝试将 required 属性添加到第一个复选框,但这仅意味着用户必须选择第一个不是我想要的复选框。这在 .cshtml 中可行吗?
这是我的看法:
@using (Html.BeginForm("Data", "Controller"))
{
for (int i = 0; i < Model.items.Count; i++)
{
int counter = 0;
@Html.CheckBoxFor(r => Model.items[i].IsSelected)
<label> @Model.items[i].te</label><br />
@Html.HiddenFor(h => @Model.items[i].Id)
@Html.HiddenFor(h => @Model.items[i].Name)
if (Model.items[i].Selected)
{
counter++;
}
else if (counter < 1)
{
RequiredCustom custom = new();
custom.IsValid(Model.items);
}
}
<input id="Button" type="submit" value="Next" />
}
【问题讨论】:
-
在帖子描述中,您正在谈论复选框。但是上面的视图包含
radio-buttons。 -
对不起,我复制了错误的视图,请查看更新后的帖子@Jackdaw
-
不,这是不可能的,您必须验证您的 model.plans 至少包含 1 个选定的纯文本,(请参阅 c# 中的自定义数据验证)然后您可以检查此属性是否有效并显示如果不是自定义错误,例如stackoverflow.com/questions/21263063/…
-
这里是自定义属性stackoverflow.com/a/33495692/2302522 的示例,尝试实现适合您需要的类似属性。
-
@croban 感谢您与我分享这些。我试图实现或者但陷入了困境。请查看更新后的帖子,我在其中展示了处理此问题的控制器
标签: c# html asp.net-mvc checkbox asp.net-core-mvc