我有一個強類型局部視圖,以列表格式顯示輸出。我想從數據庫中的部分視圖插入數據。我正在努力循環遍歷部分視圖中的行,並將它們發送到控制器操作以插入到數據庫中。以下是我迄今爲止將數據從局部視圖傳遞到控制器動作
部分:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Student.Models.vwStudent>>" %>
<table>
<tr>
<th>
Student ID
</th>
<th>
Past Due Amount
</th>
<th>
Past Due Days
</th>
</tr>
<% if (Model != null)
foreach (var item in Model) { %>
<tr>
<td>
<%=Html.TextBox("StudentID",item.StudentID) %>
</td>
<td>
<%=Html.TextBox("PastDueAmount",item.PastDueAmount) %>
</td>
<td>
<%=Html.TextBox("PastDueDays",item.PastDueDays) %>
</td>
</tr>
<% } %>
</table>
這裏是我如何訪問上面的部分在主:
<div>
<% using(Html.BeginForm("SaveStudentInvoice", "StudentInvoice")) %>
<% { %>
<div>
<% Html.RenderPartial("DisplayStudentInvoiceList"); %>
</div>
<% } %>
<br/>
<input type="button" id="Submit" name="Submit" value="Submit" />
</div>
控制器:
[HttpPost()]
public ActionResult SaveStudentInvoice(IEnumerable<Student.Models.vwStudent> students)
{
DataContext db = new DataContext();
foreach(Student.Models.vwStudent student in students){
Invoice Inv = new Invoice();
{
Inv.StudentID= student.StudentID;
Inv.PastDueAmount= student.PastDueAmount;
Inv.PastDueDays= student.PastDueDays;
};
db.Invoices.InsertOnSubmit(Inv);
}
db.SubmitChanges();
return View();
}
在局部視圖,列出不止一個學生(2,3,4 ..行)。當我點擊「保存」按鈕時,我只能保存部分(第一行)中列出的第一個學生,如何循環部分列出的剩餘學生來保存它們?
在此先感謝。
它仍然將null傳遞給我的控制器操作。我已經更新了我的代碼 – user793468 2012-07-17 21:45:13
@ user793468我已經更新了我上面的答案。 – tkt986 2012-07-17 23:20:30
@ user793468檢查這個新的更新,這是建立在我的系統上,應該爲你工作。 – tkt986 2012-07-17 23:51:02