2012-06-11 9 views
16

Najlepszą radą Znalazłem edycji listy o zmiennej długości elementów został napisany dla ASP.NET MVC 2 w 2008.MVC 4 - Bardziej elegancki sposób edycji listy przedmiotów o zmiennej długości?

http://blog.stevensanderson.com/2008/12/22/editing-a-variable-length-list-of-items-in-aspnet-mvc/

Czy to podejście nadal najlepszy dla ASP.NET MVC 4, czy istnieje nowe rozwiązanie, które jest albo standaryzowane, albo bardziej eleganckie?

+0

Myślę, że ludzie robią tego rodzaju rzeczy za pośrednictwem Ajax, jeśli to możliwe. Nie tylko jest to o wiele prostsze z punktu widzenia kodu, ale zapewnia także lepsze wrażenia użytkownika. –

+0

@JonGalloway możesz link do jakiegoś przykładu? –

+0

To nie jest tak źle, jeśli nie chcesz, aby lista była ponownie rozkładana. Możesz to zrobić całkowicie po stronie klienta, używając na przykład knockoutjs lub pójść na mieszankę podchodzącą przez ciągnięcie częściowego widoku przez ajax dla każdego nowego przedmiotu. –

Odpowiedz

7

Spójrz na http://knockoutjs.com/ to framework JavaScript, który opiera się na wzorcu MVVM. Zasadniczo można modelować tablicę danych do kodu HTML, a następnie przesłać je z powrotem do macierzy JSON do kontrolera. Jednym świetnym efektem ubocznym jest to, że pomaga kontrolerom bardziej przyjaznym jednostkom testowym (ponieważ kontrolery głównie zwracają JSON).

Jest to świetny film o nokaut w http://channel9.msdn.com/Events/MIX/MIX11/FRM08

Zasadniczo co chcesz patrzeć na to obserwowalne tablice. http://knockoutjs.com/documentation/observableArrays.html

Gorąco polecam również obejrzenie 20-minutowego wideo-prezentacji na stronie knockout.js. Mimo że jest to starszy film, który daje dobre pojęcie o jego działaniu, bardzo mi to pomogło. http://channel9.msdn.com/Events/MIX/MIX11/FRM08

Możesz również użyć AngularJS http://angularjs.org/, który jest tą samą koncepcją (MVVM), jest wystawiany przez google. Istnieje wiele różnic między tymi dwoma, ale najważniejsza (zauważyłem przynajmniej) jest kanciasta, bardziej polega na szablonach, pod wieloma względami daje mu więcej mocy.

Pomiędzy tymi dwoma, myślę, że nokaut jest łatwiejszy do uruchomienia, ale masz więcej opcji z AngularJS.