Nếu tôi hiểu, bạn chính xác, bạn có một danh sách các Thuộc tính trong Mô hình Chế độ xem của mình.
Vì vậy, nếu bạn muốn làm việc với nó, bạn nên đưa nó vào danh sách.
Vì vậy, bạn nên thay đổi Mô hình Chế độ xem của mình:
//I put all properties of your list to separate model
public class AttriduteViewModel
{
public int ProductColorVariantId { get; set; }
public int ProductSizeVariantId { get; set; }
public int ProductSizeVariantValueId { get; set; }
public int ProductAttributeId { get; set; }
public int ProductAttributeValueId { get; set; }
public int? Quantity { get; set; }
}
public class ProductAttributesViewModel
{
public Product Product { get; set; }
public ProductAttribute ProductAttribute { get; set; }
public ProductAttributeValue ProductAttributeValue { get; set; }
public int ProductId { get; set; }
public string Name { get; set; }
[AllowHtml]
public string Description { get; set; }
public decimal? Price { get; set; }
public string Sizes { get; set; }
public int Stock { get; set; }
//note this line
public List<AttriduteViewModel> AdditionalAttridutes {get; set;}
}
Về cơ bản là tất cả. Bây giờ bạn chỉ nên tạo ràng buộc phù hợp cho AdditionalAttridutes
của mình . Nó sẽ dễ dàng hơn để thực hiện nó với HtmlHelpers
như Html.DropDownListFor
, Html.HiddenFor
và Html.TextBoxFor
. Tôi không thể nhìn thấy nó trong Chế độ xem của bạn.
Vấn đề là nếu bạn tạo input
của mình với Người trợ giúp, họ sẽ nhận được đúng name
Thuộc tính và mô hình của bạn sẽ liên kết chính xác trên POST .
Một điều khác mà bạn sẽ phải đối mặt là tạo động các Mục mới như trong ví dụ của bạn. Bạn nên nghĩ về thuộc tính tên bên phải. Tôi khuyên bạn nên kiểm tra câu trả lời tuyệt vời này về vấn đề đó.