Om jag förstår dig rätt har du en lista med attribut i din vymodell.
Så om du vill arbeta med det bör du placera det i listan.
Så du bör ändra din vymodell:
//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;}
}
Det är i princip allt. Nu ska du bara göra rätt bindning för dina AdditionalAttridutes
. Det blir lättare att göra det med HtmlHelpers
som Html.DropDownListFor
, Html.HiddenFor
och Html.TextBoxFor
. Jag kan bara inte se det i din vy.
Saken är om du skapar din input
s med Helpers får de rätt name
Attribut och din modell kommer att bindas korrekt vid POST .
En annan sak som du kommer att möta är att dynamiskt skapa nya objekt som i ditt exempel. Du bör tänka på rätt namnattribut. Jag råder dig att kolla det här fantastiska svaret om det problemet.