问题:
我有一个包含多个制表符的视图。每个选项卡窗格对应一个Store
。
在每个标签窗格(Store
)内,有一个表格,其中包含分配给该商店的所有Devices
的信息。每个Device
(每个Device
属于Machine
)的信息会连续显示。
目前每行都包装成一个单独的表格,但这可能会有所变化。
我正在寻找一种方法将每行保存为独立对象,同时将它们全部发送给Controller。
我所知道的:
我是ASP.NET Core的新手,但我可以放弃发送多个表单,因为我认为这是不可能的。但是,我不知道如果我发送包含在单个表单中的所有信息,如何通过每个元素进行迭代并分别保存每个元素。
控制器:
public async Task<IActionResult> Index()
{
var Tiendas = await _context.Stores.Where(t => t.Usuario == User.Identity.Name)
.Include(t => t.Machines).ThenInclude(t=>t.MachineTypes).ThenInclude(t=>t.MachineFamilies)
.Include(t => t.Machines).ThenInclude(t => t.Devices)
.Include(t => t.Machines).ThenInclude(t => t.MachineTypeIncomes)
.Include(t => t.HechosLiquidadors).ToListAsync();
SalesIndexData Liquid = new SalesIndexData()
{
StoreL = Tiendas,
};
return View(Liquid);
}
观点:
@model Application.Models.ApplicationviewModels.LiqIndexData
<div class="container">
<ul class="nav nav-pills">
@foreach (var item in Model.StoreL)
{
@if (item.StoreLastLiq != Model.CurrentDate)
{
<li><a href="#@item.StoreID" data-toggle="tab">@item.StoreName</a></li>
}
}
</ul>
<div class="tab-content">
@foreach (var item in Model.StoreL)
{
<form asp-action="Index" method="post">
<div class="tab-pane fade" id="@item.StoreID">
<table style="width:100%;" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<td><div>Machine Model</div></td>
<td><div>Sales</div></td>
</tr>
</thead>
<tbody>
@foreach (var store in Model.StoreL.Where(s => s.StoreID == item.StoreID))
{
@foreach (var machine in store.Machines)
{
@foreach (var device in machine.Devices)
{
<tr>
<td>
@Html.DisplayFor(modelItem => machine.CoinValue)
</td>
<td>
<div class="form-group">
<div>
<input id="@device.DeviceName" type="number" min="0" step="1" asp-for="@Model.SalesAmount" name="SalesAmount" />
<span asp-validation-for="@Model.SalesAmount" class="text-danger field-validation-valid" data-valmsg-for="Cortesia" data-valmsg-replace="true"></span>
</div>
</div>
</td>
</tr>
}
}
}
</tbody>
</table>
</form>
<div class="btn-group">
<a id="AddLiquidacion" asp-action="Index" method="post" class="btn btn-default">
Grabar Liquidación
</a>
</div>
</div>
}
寻找有关如何解决此问题的任何建议。我想保留设计并避免为每个Device
创建单独的视图,并在可能的情况下单独保存每个视图。 JQuery可能会参与这项任务吗?