我需要在表格单元格中使用表单与另一个单元格中的字段。我正在使用输入library。 MVC将数据传递给控制器正常工作,但在表单发送之前的验证不适用于此属性。
<tr>
<td>
@Html.EditorFor(model => item.Code, new { htmlAttributes = new { @class = "form-control inline-edit", form = "editForm" + item.Id } })
@Html.ValidationMessageFor(model => item.Code)
</td>
<td>
@Html.EditorFor(model => item.Name, new { htmlAttributes = new { @class = "form-control inline-edit", form = "editForm" + item.Id } })
@Html.ValidationMessageFor(model => item.Name)
</td>
<td class="text-right">
@using (Html.BeginForm("UpdatePrintMaterial", "Production", FormMethod.Post, new { id = "editForm" + item.Id }))
{
@Html.AntiForgeryToken()
@Html.HiddenFor(model => item.Id)
<button class="btn btn-default save" data-toggle="tooltip" title="Zapisz"><i class="fa fa-save"></i></button>
}
</td></tr>
如何在发送数据之前解决此问题以使用验证?
答案 0 :(得分:0)
修订:根据您的要求,
您可以拥有3个单独的表单标签,每个按钮一个。只需确保表单中包含要传递的数据的输入字段。例如,如果您的操作方法是使用名为EmployeeId的参数接受EmployeeId,则您应该在输入隐藏字段中具有相同的表单内部。
@model IEnumerable<Employee>
<table>
@foreach(var item in Model)
{
<tr>
<td>@item.EmployeeName</td>
<td>@item.EmployeeGender</td>
<td>@item.EmployeeCity</td>
<td>@item.EmployeeDateOfBirth</td>
<td>
@using(Html.BeginForm("Details","YourControllerName"))
{
<input type="hidden" name="EmployeeId" value="@item.EmployeeId" />
<input type="submit" value="Details" />
}
@using(Html.BeginForm("Edit","YourControllerName"))
{
<input type="hidden" name="EmployeeId" value="@item.EmployeeId" />
<input type="submit" value="Edit" />
}
@using(Html.BeginForm("Delete","YourControllerName"))
{
<input type="hidden" name="EmployeeId" value="@item.EmployeeId" />
<input type="submit" value="Delete" />
}
</td>
</tr>
}
*另外请记住,嵌套表单是无效的HTML。所以请确保你没有那些。