अगर मैं समझता हूं कि आप सही हैं तो आपके पास अपने व्यू मॉडल में विशेषताओं की एक सूची है।
इसलिए यदि आप इसके साथ काम करना चाहते हैं तो आपको इसे सूची में रखना चाहिए।
तो आपको अपना व्यू मॉडल बदलना चाहिए:
//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 . पर सही ढंग से बंध जाएगा .
एक और चीज जिसका आप सामना करेंगे, वह है गतिशील रूप से आपके उदाहरण की तरह नए आइटम बनाना। आपको सही नाम विशेषता के बारे में सोचना चाहिए। मेरी सलाह है कि आप यह बढ़िया जवाब देखें। उस समस्या के बारे में।