Tôi đã đấu tranh với điều này trong tuần này và câu trả lời Bassam là chìa khóa để nhận được tôi đi đúng hướng. Tôi có danh sách động các mục khoảng không quảng cáo có thể có trường số lượng. Tôi cần biết có bao nhiêu mục trong số họ đã chọn, ngoại trừ danh sách các mục có thể thay đổi từ 1 đến n.
Giải pháp của tôi khá đơn giản cuối cùng. Tôi tạo ra một ViewModel được gọi là ItemVM với hai thuộc tính. ItemID và số lượng. Trong bài viết, tôi chấp nhận một danh sách những điều này. Với tính năng Lập chỉ mục, tất cả các mục sẽ được chuyển đi .. ngay cả với số lượng không. Bạn phải xác nhận và xử lý nó phía máy chủ, nhưng với iteration nó tầm thường để xử lý danh sách động này.
Trong Xem của tôi, tôi đang sử dụng một cái gì đó như thế này:
@foreach (Item item in Items)
{
<input type="hidden" name="OrderItems.Index" value="@item.ItemID" />
<input type="hidden" name="OrderItems[@item.ItemID].ItemID" value="@item.ItemID" />
<input type="number" name="OrderItems[@item.ItemID].Quantity" />
}
này mang lại cho tôi một danh sách với chỉ số 0-based, nhưng lặp đi lặp lại trong bộ điều khiển trích xuất toàn bộ dữ liệu cần thiết từ một mô hình mạnh mẽ, đánh máy mới .
public ActionResult Marketing(List<ItemVM> OrderItems)
...
foreach (ItemVM itemVM in OrderItems)
{
OrderItem item = new OrderItem();
item.ItemID = Convert.ToInt16(itemVM.ItemID);
item.Quantity = Convert.ToInt16(itemVM.Quantity);
if (item.Quantity > 0)
{
order.Items.Add(item);
}
}
Sau đó, bạn sẽ kết thúc với tập hợp các mục có số lượng lớn hơn 0 và ID mặt hàng.
Kỹ thuật này đang hoạt động ở MVC 5 sử dụng EF 6 trong Visual Studio 2015. Có thể điều này sẽ giúp ai đó tìm kiếm giải pháp này giống như tôi.
Nguồn
2015-10-10 15:04:16
Tôi đã hy vọng để tránh cách tiếp cận này. Tôi đã có những ngón tay của tôi vượt qua rằng các mô hình mặc định chất kết dính sẽ chỉ đơn giản là giải quyết các indice mất tích chính nó. Phải có một lý do (có lẽ cho các tình huống phức tạp hơn?) Vì phải xác định rõ ràng chỉ mục. Dù bằng cách nào, cảm ơn cho trả lời nhanh chóng và mã mẫu. – mindlessgoods
Cảm ơn bạn, hoạt động hoàn hảo! – Levitikon
OH MY NUL! Điều này chỉ làm trở lại danh sách SO dễ dàng hơn nhiều, thay vì làm vô lý cho (i + +) tôi chỉ có thể sử dụng khóa chính hoặc bất kỳ ID khác trên chỉ mục, và danh sách trở lại rất tốt đẹp, và mạnh mẽ đánh máy. Những bí mật đen tối ẩn giấu này. Điều này làm cho ngày của tôi! 1 + bia !!! – ppumkin