/ / Niestandardowy segregator modelu dla właściwości wewnętrznej modelu - asp.net-mvc

Niestandardowy segregator modelu dla właściwości wewnętrznej modelu - asp.net-mvc

Mój model jest taki

public class MyModel
{
string ID {get;set;}
string Title {get;set;}
MyOtherModel Meta {get;set;}
}

Jak zdefiniować niestandardowy segregator dla typu (MyOtherModel), więc gdy domyślny segregator wiąże MyModel, wywołuje niestandardowy segregator dla właściwości "Meta". Zarejestrowałem go w App startu jak:

 ModelBinders.Binders[typeof(MyOtherModel)] = new MyCustomBinder();

ale to nie działa, jakikolwiek pomysł lub jakiś dobry artykuł z większą ilością informacji dotyczących modelowania spoiw?

Odpowiedzi:

1 dla odpowiedzi № 1

Jest artykuł o kolekcjach, który dotyka trochę skomplikowanych typów mapowania typu:

Kolekcje i trochę o typach złożonych

Z drugiej strony ten artykuł może dać ci kilka przydatnych wskazówek:

http://odetocode.com/Blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx

Proponuję ci jako obejście aby użyć spinacza modelu dla klasy MyModel, nie jest to idealne rozwiązanie, ale możesz refaktor to łatwo, gdy odkryjesz lepsze rozwiązanie. :)


0 dla odpowiedzi nr 2

Właściwie, jeśli umieścisz Edycja / Utwórz widok z modelem twojej klasy MyModel, coś takiego:

<%= Html.TextBox("Meta.Prop1") %>

gdzie Prop1 jest własnością twojej klasy MyOtherModel, następnie

UpdateModel(model);

wypełni wartość pola tekstowego do niestandardowej właściwości podmodelu. I z powrotem, wartość pola tekstowego będzie również wypełniona tą wartością podmodelu.

Tak więc, po aktualizacji aktualnego modelu, aktualizujesz także podmodele.