[英]ASP.NET MVC - Update ViewModel for List of elements
我有一個 MVC 視圖,可以查看成員列表的付款值和狀態,因此我在 ViewModel 中放入了memberPaymentData
列表,該視圖的 ViewModel 如下:
public class MembersPaymentViewModel
{
public List<MemberPaymentData> MembersPaymentData { get; set; }
}
和MembersPaymentData
Class:
public class MemberPaymentData
{
public PaymentRule PaymentRule { get; set; }
public float WorkedHoursOrDaysInCurrentMonth { get; set; }
public float Payment { get; set; }
public string PaymentStatus { get; set; };
}
現在,管理員應該查看會員的付款,並將它們提交到數據庫,但在提交之前,他應該能夠編輯付款金額和付款狀態。 所以我把金額放在一個文本框中,把狀態放在一個下拉列表中。
我的問題是:當管理員提交表單時,我想在 model 中獲取列表或其他所有成員的付款值和狀態,我該如何實現?
MembersPaymentViewModel
class 或重新設計 model class 基於要傳遞給 Z5904C103F2C060E1 的輸入。Controller
[HttpPost]
public ActionResult Payment(MembersPaymentViewModel model)
{
// TO-DO
return View(model);
}
<form>
HTML 元素。 您的form
元素應類似於以下內容:Razor 查看
@using (Html.BeginForm("Payment", "Home", FormMethod.Post))
{
<table style="width: 100%;">
<thead>
<tr>
<td width="60">Day/Hours Worked</td>
<td width="10">Payment</td>
<td width="30">Status</td>
</tr>
</thead>
<tbody>
@{
for (int i = 0; i < Model.MembersPaymentData.Count; i++)
{
<tr style="padding-bottom: 10px;">
<td>
@Html.TextBoxFor(model => model.MembersPaymentData[i].WorkedHoursOrDaysInCurrentMonth
, new
{
@readonly = "readonly"
})
<span>Hours</span>
</td>
<td>
@Html.TextBoxFor(model => model.MembersPaymentData[i].Payment)
</td>
<td>
@Html.TextBoxFor(model => model.MembersPaymentData[i].PaymentStatus)
</td>
</tr>
}
}
</tbody>
</table>
<br />
<button type="submit">Submit</button>
}
最重要的是<input>
HTML 元素的name
屬性必須與從 controller 操作接收到的請求正文相匹配。
演示
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.