出力をリスト形式で表示する、厳密に型指定された部分ビューがあります。DBに部分ビューからデータを挿入したい。部分ビューで行をループし、それらをコントローラー アクションに送信して DB に挿入するのに苦労しています。これが私がこれまでに持っているものです
部分的:
<%@ 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 行)。「保存」ボタンをクリックすると、部分的にリストされている最初の生徒 (1 行目) しか保存できません。部分的にリストされている残りの生徒をループして保存するにはどうすればよいですか?
前もって感謝します。