sql >> Database teknologi >  >> RDS >> Mysql

Asp.Net MVC - Indsættelse af flere rækker i databasen

Hvis jeg forstår dig korrekt, har du en liste over attributter i din visningsmodel.

Så hvis du vil arbejde med det, skal du placere det på listen.

Så du bør ændre din visningsmodel:

//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 er stort set alt. Nu skal du kun lave den rigtige binding for dine AdditionalAttridutes . Det bliver nemmere at lave det med HtmlHelpers som Html.DropDownListFor , Html.HiddenFor og Html.TextBoxFor . Jeg kan bare ikke se det i din visning.

Sagen er, hvis du opretter dit input s med Hjælpere får de det rigtige name Attribut og din model bindes korrekt på POST .

En anden ting, du vil stå over for, er dynamisk at oprette nye elementer som i dit eksempel. Du bør tænke på den rigtige navneegenskab. Jeg råder dig til at tjekke dette gode svar om det problem.




  1. MySQL DB vælger poster med og uden umlyd. f.eks:'.. hvor noget =FÖÖ'

  2. MySQL LN() Funktion – Returner den naturlige logaritme af et tal

  3. Sammenlign to MySQL-databaser

  4. Angular 2 og MySQL koncepter