将HTML表格转换为ADO.NET DataTable
将HTML表格值发布到ADO.NET DataTable,关键在于确保HTML控件名称与模型属性相对应。
更正HTML控件以进行表单提交
当前的HTML标记生成的控件名称不正确,这阻碍了与模型的数据绑定。为了正确绑定,控件名称必须与模型的属性对齐。对于第一行,不应该使用“item.LeaveType”,而应该使用“LeaveDetailsList[0].LeaveType”,对于第二行,应该使用“LeaveDetailsList[1].LeaveType”,以此类推。
修改HTML代码
为了实现这一点,如果集合实现了IList
For循环方法:
<code class="language-csharp">for (int i = 0; i < ...; i++) { // 使用 LeaveDetailsList[i].LeaveType 等生成控件 }</code>
EditorTemplate方法:
创建 /Views/Shared/EditorTemplates/LeaveBalanceDetails.cshtml:
<code class="language-csharp">@model yourAssembly.LeaveBalanceDetails <tr> <td>@Html.TextBoxFor(m => m.LeaveType)</td> .... </tr></code>
在主视图中:
<code class="language-csharp"><table> .... // 添加表头 <tbody> @Html.EditorFor(m => m.LeaveDetailsList) </tbody> </table></code>
控制器代码
最后,在控制器的Edit方法中:
<code class="language-csharp">public ActionResult Edit(LeaveBalanceViewModel model) { // 迭代 model.LeaveDetailsList 并保存项目 }</code>
以上是如何通过模型绑定正确地将HTML表数据映射到ADO.NET DATATATATE?的详细内容。更多信息请关注PHP中文网其他相关文章!