Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Asp.Net MVC - Wstawianie wielu wierszy w bazie danych

Jeśli rozumiem, że masz rację, masz listę atrybutów w swoim modelu widoku.

Więc jeśli chcesz z nim pracować, powinieneś umieścić go na liście.

Powinieneś więc zmienić swój model widoku:

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

To w zasadzie wszystko. Teraz powinieneś zrobić tylko prawidłowe wiązanie dla swoich AdditionalAttridutes . Łatwiej będzie to zrobić z HtmlHelpers jak Html.DropDownListFor , Html.HiddenFor i Html.TextBoxFor . Po prostu nie widzę tego w Twoim widoku.

Chodzi o to, jeśli utworzysz swój input s z pomocnikami uzyskają prawo name Atrybut i model zostaną prawidłowo powiązane w POST .

Kolejną rzeczą, z którą będziesz musiał się zmierzyć, jest dynamiczne tworzenie nowych przedmiotów, tak jak w twoim przykładzie. Powinieneś pomyśleć o właściwym atrybucie nazwy. Radzę sprawdzić tę świetną odpowiedź o tym problemie.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Implementacja odległości Levenshteina dla wyszukiwania mysql/fuzzy?

  2. MySQL utf8mb4, Błędy podczas zapisywania emotikonów

  3. Jak dodać kolumnę za pomocą alter w mysql?

  4. Zamień porównanie na podzapytanie skalarne przez sprzężenie wewnętrzne lub sprzężenie lewe/prawe

  5. jak sprawdzić, czy kolumna jest kluczem podstawowym za pomocą mysqli?