I have a ViewModel which contains a List of my Model, like so:
public class OrderConfirm
{
public ICollection<DayBookQuoteLines> SalesLines { get; set; }
public ICollection<DayBookQuoteLines> LostLines { get; set; }
public string Currency { get; set; }
}
I then use this ViewModel in my View like so:
@model btn_intranet.Areas.DayBook.Models.ViewModels.OrderConfirm
@{
ViewBag.Title = "Daybook - Order Confirmation";
}
<h6>Sales Lines</h6>
<div id="SalesOrders">
@using (Ajax.BeginForm("ConfirmSalesOrder", new AjaxOptions()
{
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "SalesOrders",
OnBegin = "SalesOrderConfirm"
}))
{
@foreach(var item in Model.SalesLines)
{
<p>@item.ItemName</p>
<p>@item.Qty</p>
@* Other Properties *@
}
<input type="submit" value="Submit Sales Order" />
}
</div>
<h6>Lost Lines</h6>
<div id="LostOrders">
@using (Ajax.BeginForm("ConfirmLostOrder", new AjaxOptions()
{
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "LostOrders",
OnBegin = "LostOrderConfirm"
}))
{
@foreach(var item in Model.SalesLines)
{
<p>@item.ItemName</p>
<p>@item.Qty</p>
@* Other Properties *@
}
<input type="submit" value="Submit Lost Order" />
}
</div>
The problem is, in my [HttpPost]
actions, both ConfirmSalesOrder
and ConfirmLostOrder
. The value of my Model passed as a parameter is null:
[HttpPost]
public ActionResult ConfirmSalesOrder(List<DayBookQuoteLines> quoteLines)
{
// Process order...
return PartialView("Sales/_ConfirmSalesOrder");
}
so quoteLines
is null. How can I bind the form to my model?