您在视图中有一个 HTML 表格,需要将其转换为 ADO.NET DataTable 以将值保存到数据库。
HTML 表格是使用 foreach 循环生成的,该循环创建带有输入字段的行。问题是这些输入字段的 name 属性与模型属性不匹配,而这对于在回发时绑定到模型是必需的。
为了获得正确的 name 属性,您应该使用 for 循环(集合必须实现 IList
使用 for 循环:
<code class="language-csharp">for (int i = 0; i < Model.LeaveDetailsList.Count; i++) { @Html.TextBoxFor(m => m.LeaveDetailsList[i].LeaveType) .... }</code>
使用自定义 EditorTemplate:
EditorTemplate:
<code class="language-csharp">@model yourAssembly.LeaveBalanceDetails <tr> <td>@Html.TextBoxFor(m => m.LeaveType)</td> .... </tr></code>
主视图:
<code class="language-csharp"><table> .... // 添加表头(最好在 <thead> 元素中) <tbody> @Html.EditorFor(m => m.LeaveDetailsList) </tbody> </table></code>
控制器:
<code class="language-csharp">public ActionResult Edit(LeaveBalanceViewModel model) { // 迭代 model.LeaveDetailsList 并保存项目 }</code>
通过使用这些方法之一,您可以确保输入字段的 name 属性与模型属性匹配,从而能够在回发时绑定到模型并从 HTML 表格中提取值。
以上是如何将HTML表转换为用于数据库存储的ADO.NET DATATATATE?的详细内容。更多信息请关注PHP中文网其他相关文章!