2010-01-17 14 views
37

Jest to w pewnym sensie dwuczęściowe pytanie (proszę dać mi znać, czy należy je podzielić).Macierz powiązań ASP.NET MVC w modelu

1) Mam klasę modelu z tablicą obiektów w nim zawartą. Chciałbym móc powiązać to automatycznie, więc mogę zaakceptować pojedynczy argument pollModel w moich kontrolerach.

public class pollResponseModel 
{ 
    public long id { get; set; } 
    public long pollID { get; set; } 
    public string text { get; set; } 
    public long count { get; set; } 
} 

public class pollModel 
{ 
    public long id; 
    public long entID { get; set; } 
    public string question { get; set; } 
    public DateTime posted { get; set; } 
    public DateTime expiration { get; set; } 

    public pollResponseModel[] responses { get; set; } 
} 

Problemem jest to, że nie jestem pewien, jak powiązać pole responses, widząc, jak to może mieć dowolną wielkość. Mogę go poprawnie powiązać podczas wyświetlania widoku edycji, ale to już wszystko. To prowadzi mnie do drugiej części mojego pytania:

2) Jaki jest dopuszczalny sposób dynamicznego tworzenia i usuwania danych z listy na kliencie, aby mógł być powiązany z modelem i dostępny w zmodyfikowanej formie serwer? Wyobrażam sobie proces tworzenia/usuwania działający jak GUI listy iPhone: pojedynczy przycisk + doda nowy element, a przycisk - na każdym wierszu danych usunie go z listy. Wyobrażam sobie, że jQuery jest odpowiednim punktem wyjścia, ale moje umiejętności JS są bardzo ograniczone.

Odpowiedz

41

Przeczytaj ten artykuł Phila Haacka: Model Binding To a List. Wyjaśnia dokładnie, co należy zrobić, aby powiązać z właściwościami listy lub właściwościami złożonymi obiektami.

Zasadniczo po prostu trzeba skonstruować dane POST we właściwy sposób, aby segregator modelu przetworzył go. W artykule wyjaśniono, jak dodawać ukryte pola indeksu i reprezentować złożone właściwości w formularzu.

+0

do góry na podstawie podanego linku. Świetny artykuł –

Powiązane problemy