2009-10-11 11 views
27

Poszukuję zestawu najlepszych praktyk, które można wykorzystać podczas wdrażania IModelBinder.Sprawdzone metody wdrażania IModelBinder

Czytałem trzy różne książki MVC i każdy robi trochę inne rzeczy w swoich implementacjach bez żadnego prawdziwego wyjaśnienia.

  • Hanselman, Haack, Guthrie, Conery książka nawet nie wspominając IModelBinder
  • Palermo zaleca rozszerzenie DefaultModelBinder zamiast bezpośredniej realizacji IModelBinder, ale ja naprawdę nie zobaczyć, jak wykorzystać zalety
  • Sanderson wspomina o aktualizowaniu istniejących instancji Modelu, a także wywoływaniu ModelState.SetModelValue() w celu przestrzegania konwencji.

Chcę tylko upewnić się, że moje segregatory modelu są zgodne z konwencjami i że poprawnie rozumiem cały ModelBindingContext.

Wszelkie wskazówki, porady, dobre samouczki do polecenia?

Odpowiedz

9

K Scott Allen ma kilka wskazówek dotyczących wiązania do modelu: http://odetocode.com/blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx.

+0

W artykule wspomina danych Adnotacje więc zastanawiałem się, czy powinienem dziedziczą DataAnnotationsModelBinder zamiast. Odpowiedź brzmi nie. DomyślnieModelBinder MVC 2 RTM już zawiera logikę z DataAnnotationsModelBinder. Zobacz http://stackoverflow.com/questions/2666955/dataannotationsmodelbinder-with-mvc2-rtm/2669207#2669207 –

2

Odziedziczyłem po DefaultModelBinder, ponieważ automatycznie wiąże podstawowe właściwości w encji. Poprawiłem go, więc wiąże również właściwości nawigacyjne. Moja segregator najpierw wykonuje dziedziczone wiązanie, a następnie wyszukuje dodatkowe wartości właściwości nawigacyjnych w formularzu. Myślę, że Twoje podejście powinno zależeć od tego, co naprawdę chcesz robić. Możesz także użyć reflektora i zobaczyć, co naprawdę stoi za domyślnym spoiwem. To może przekonać Cię do dziedziczenia.

0

MVC Futures 2 ma rozszerzalny system wiązania modelu . Możesz dowiedzieć się więcej w dokumentacji uwalniania w http://aspnet.codeplex.com/releases/view/41742

Wystarczy pobrać „ASP.NET MVC 2 Futures Extensible modelu Binder Dokumentacja”

1

żyć przykładem IModelBinder dostępna jest tutaj. W tym przykładzie złożony querystring Apache solr został zawinięty, aby przekazać proste obiekty do Modelu.

IModelBinder Realizacja

Controller

Powiązane problemy