您在視圖中有一個 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中文網其他相關文章!