sql >> Base de Datos >  >> RDS >> Mysql

Asp.Net MVC - Insertar varias filas en la base de datos

Si entiendo que corrige, tiene una lista de atributos en su modelo de vista.

Entonces, si desea trabajar con él, debe colocarlo en la lista.

Entonces deberías cambiar tu modelo de vista:

//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;}
}

Eso es básicamente todo. Ahora solo debe hacer un enlace correcto para sus AdditionalAttridutes . Será más fácil hacerlo con HtmlHelpers como Html.DropDownListFor , Html.HiddenFor y Html.TextBoxFor . Simplemente no puedo verlo en tu Vista.

La cosa es que si creas tu input s con Helpers obtendrán el name correcto El atributo y su modelo se vincularán correctamente en POST .

Otra cosa con la que se enfrentará es la creación dinámica de nuevos elementos como en su ejemplo. Deberías pensar en el atributo del nombre correcto. Te aconsejo que revises esta gran respuesta sobre ese problema.