Jika saya mengerti Anda benar, Anda memiliki daftar Atribut dalam Model Tampilan Anda.
Jadi, jika Anda ingin bekerja dengannya, Anda harus memasukkannya ke dalam daftar.
Jadi, Anda harus mengubah Model Tampilan Anda:
//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;}
}
Itu pada dasarnya semua. Sekarang Anda hanya perlu membuat penjilidan yang tepat untuk AdditionalAttridutes
. Anda . Akan lebih mudah membuatnya dengan HtmlHelpers
seperti Html.DropDownListFor
, Html.HiddenFor
dan Html.TextBoxFor
. Saya tidak bisa melihatnya di Tampilan Anda.
Masalahnya adalah jika Anda membuat input
s dengan Pembantu mereka akan mendapatkan name
yang benar Atribut dan model Anda akan mengikat dengan benar pada POST .
Hal lain yang akan Anda hadapi adalah membuat Item baru secara dinamis seperti pada contoh Anda. Anda harus memikirkan atribut nama yang tepat. Saya menyarankan Anda untuk memeriksa jawaban hebat ini tentang masalah itu.