【发布时间】:2018-08-31 18:22:11
【问题描述】:
我将我的FormCollection 发布到我的HttpPost 行动Asp.Net MVC。一切正常,但问题是验证。我有 3 行,每行有 3 个文本框。我想通过JavaScript 或C# 确保如果一行中的任何textbox 已填充,则需要其他的。我不能让它静态,因为行和文本框是非常动态的。我们可以有五行、六行或更多行。
以下是我的代码:
@{
int count = 0;
foreach (var record in Model)
{
<tr>
<td>
@Html.Hidden(count.ToString() + "Record", record.Id.ToString())
</td>
<td>
<input type="text" name="@count.ToString()Code" />
</td>
<td>
<input type="text" name="@count.ToString()Name" />
</td>
</tr>
count = count + 1;
}
@Html.Hidden("TotalRecords", count)
}
假设,我有三行,每行都有代码和名称。如果row1 的代码被填写,我需要确保'row1' 的名称应该填写。我该怎么做?
【问题讨论】:
-
创建一个具有
Code和Name属性的视图模型。应用条件验证属性。例如foolproof[RequiredIfNotEmpty("Code")到您的Name属性。然后通过将模型的集合传递给视图并使用HtmlHelper方法(包括@Html.ValidationMessageFor())来正确生成视图,以便您获得客户端和服务器端验证,并且可以在 POST 方法中绑定到您的模型
标签: c# asp.net-mvc validation conditional