Ако разбирам правилно, имате списък с атрибути във вашия модел на изглед.
Така че, ако искате да работите с него, трябва да го поставите в списъка.
Така че трябва да промените своя модел на изглед:
//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;}
}
Това е общо взето всичко. Сега трябва да направите правилно обвързване само за вашите AdditionalAttridutes
. Ще бъде по-лесно да го направите с HtmlHelpers
като Html.DropDownListFor
, Html.HiddenFor
и Html.TextBoxFor
. Просто не мога да го видя във вашия изглед.
Въпросът е, ако създадете своя input
с Помощници те ще получат правилното name
Атрибутът и вашият модел ще се свържат правилно при POST .
Друго нещо, с което ще се сблъскате, е динамичното създаване на нови елементи, както във вашия пример. Трябва да помислите за правилния атрибут на име. Съветвам ви да проверите този страхотен отговор за този проблем.